完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我买了一本书《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个回答
|
|
云汉达人
蓝蓝的天 发表于 2016-9-18 16:38 这个没打印NO,只能说明send_fd返回的值小于0,并不能代表传入的argv[1]错误 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
云汉达人
我把程序改成这样: 就是希望如果参数正确,就打印ok!和no! 可是我运行程序输入参数,结果如下: 只打印出ok!,no没打印出来,说明发送文件描述符那一句有问题,返回值<0,直接返回0. |
|
|
|
云汉达人
蓝蓝的天 发表于 2016-9-18 16:38 如果不行, 就把open的FD传给send_fd,不需要你输入fd的值。send_fd函数发全,看看, |
|
|
|
云汉达人
zhangsf_chongza 发表于 2016-9-18 18:55 send_fd()函数发全啦。两张图片结合起来看 |
|
|
|
云汉达人
zhangsf_chongza 发表于 2016-9-18 18:53 小于0就说明有错误呀 |
|
|
|
云汉达人
LiuYang 发表于 2016-9-18 19:04 只有一个open的返回值fd,可是那个fd传给了send_fd的第四个参数。 |
|
|
|
楼主有最佳答案,记得选啊,别忘了
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
那个参数可以填 打开文件的方式(只读,只写,追加等)
|
|
|
|
不懂帮顶下
|
|
|
|
只有小组成员才能发言,加入小组>>
791 浏览 0 评论
1151 浏览 1 评论
2527 浏览 5 评论
2860 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2710 浏览 6 评论
keil5中manage run-time environment怎么是灰色,不可以操作吗?
1070浏览 3评论
193浏览 2评论
455浏览 2评论
368浏览 2评论
M0518 PWM的电压输出只有2V左右,没有3.3V是怎么回事?
453浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 09:43 , Processed in 1.200927 second(s), Total 76, Slave 67 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号