传递文件描述符的问题

2019-03-26 12:28发布

我买了一本书《Linux网络编程》。
看到第11章高级套接字。有个例子,传递文件描述符。
其中,进程A根据用户输入的文件名打开一个文件,将文件描述符打包到消息结构中,然后发送给进程B.
进程A的代码如下:
1.jpg 2.jpg
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表示只读属性。?那个地方是第一个参数,我不知道应该填什么。请教高手,该怎么写?
谢谢!
此帖出自Linux与安卓论坛
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
10条回答
EETUX
1楼-- · 2019-03-26 13:06
 精彩回答 2  元偷偷看……
chenbingjy
2楼-- · 2019-03-26 16:41
EETUX 发表于 2016-9-18 16:06
参数决定 发什么,当然也要决定 发给谁。

不明白。那第一个参数应该怎么写呢?
EETUX
3楼-- · 2019-03-26 22:09
chenbingjy 发表于 2016-9-18 16:32
不明白。那第一个参数应该怎么写呢?

不就是sendmsg的第一个参数
具体值要结合你所说的进程B来看
chenbingjy
4楼-- · 2019-03-27 00:55
 精彩回答 2  元偷偷看……
EETUX
5楼-- · 2019-03-27 01:24
见72行execl(...) 的 3个参数
B的参数实际就是A的第二个参数
chenbingjy
6楼-- · 2019-03-27 05:14
EETUX 发表于 2016-9-19 09:19
见72行execl(...) 的 3个参数
B的参数实际就是A的第二个参数

谢谢,我还是不明白。那应该怎么运行这两个程序呢?
我感觉应该先运行A吧。
运行应该大致怎么输入参数呢?你能不能举个例子。
我知道你是大神,你告诉我。谢谢,我太菜了。

一周热门 更多>