嵌入式学习小组
直播中

孔维源

8年用户 167经验值
私信 关注

传递文件描述符是什么?

我买了一本书《Linux网络编程》。
看到第11章高级套接字。有个例子,传递文件描述符。
其中,进程A根据用户输入的文件名打开一个文件,将文件描述符打包到消息结构中,然后发送给进程B.
进程A的代码如下:

main函数是带参数的,而且是带3个参数。
其中第二个参数是文件名,第三个参数是打开文件属性,比如只读。
第一个参数我搞不明白。
就是这句: if((n=send_fd(atoi(argv[1]),"",1,fd))<0)
return 0.
其中send_fd()是程序中定义的一个函数。那个argv[1]我不知道用什么代换。
我运行程序大概这样:
比如可执行文件为a,那么执行
./a ? 1.txt 4
1.txt是文件名,4表示只读属性。?那个地方是第一个参数,我不知道应该填什么。请教高手,该怎么写?
谢谢!

回帖(15)

徐铭潞

2020-5-7 07:21:49
云汉达人

蓝蓝的天 发表于 2016-9-18 16:38
我把程序改成这样:

就是希望如果参数正确,就打印ok!和no!

这个没打印NO,只能说明send_fd返回的值小于0,并不能代表传入的argv[1]错误
举报

李衍安

2020-5-7 07:35:36
云汉达人
不懂帮顶下
举报

张艳

2020-5-7 07:52:32
云汉达人
文件描述符,就是个int,随便用整数
举报

曾祥玲

2020-5-7 08:11:08
云汉达人

zhangsf_chongza 发表于 2016-9-18 16:32
文件描述符,就是个int,随便用整数

谢谢,我随便用一个整数,可是不对呀
举报

更多回帖

发帖
×
20
完善资料,
赚取积分