免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2546 | 回复: 3

[硬件及驱动] sys_write参数fd的问题 [复制链接]

论坛徽章:
0
发表于 2014-06-04 10:44 |显示全部楼层
                大家好,我想请问一下,在一个写操作中,内核sys_write的fd参数,与应用层的write的fd参数,是否是一个值?   就是说,对不同文件的写操作,通过fd是否可以区分开?
               
               我刚才做了一个测试,通过给串口发数据的方式,观察应用层write和内核的sys_write两者fd的值,发现不一致,请问这种现象正常吗?

               那通过什么办法可以在sys_write函数中,只收集发给指定设备的数据呢?

               请大家帮帮忙,谢谢。

论坛徽章:
0
发表于 2014-06-04 11:44 |显示全部楼层
sys_write是指的SYSCALL_DEFINE3(write, unsigned int, fd, const char __user *, buf, size_t, count)吧。
在同一个进程中,这里的fd和系统调用write应该是一致的。
不同进程之间的话,fd可能不一致。

论坛徽章:
0
发表于 2014-06-04 12:32 |显示全部楼层
回复 2# cu_philfrank

    你好,我的测试是在一个进程中完成的,你的意思是说open、write、sys_write这三者的fd值应该是一样的吧,我感觉也应该是这样,但是测试结果不是这样的,测试方法就是在sys_write函数中把fd值打印出来,然后和应用write函数对比,请问这样是否可以,谢谢。

论坛徽章:
0
发表于 2014-06-04 14:27 |显示全部楼层
回复 3# mousexqshe
恩,这样应该测试是可以的。这里我也不知道你那不同的原因了。


   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP