日期:2014-05-16  浏览次数:20734 次

如何让文件描述符共享一个文件表项
RT
目的是写一个和dup2函数功能一样的函数。
其它方面都好做,但是怎么样才能让新创建的文件描述符和原有的文件描述副共享一个文件表项呢?
求这方面的思路。

------解决方案--------------------
这个估计这能在内核作了,可以参考sys_dup的实现:
1.获取传入的源fd和目标fd对应的file结构
fget(fd);
2.如果目标fd不为空,则关闭对应的fd
3.获取当前进程的file_struct,并取得fdtable
files = current->files;
fdt = files_fdtable(files);
4.然后将fdtable对应的目标fd执行源fd对应的file结构
------解决方案--------------------
使用dup去实现它
------解决方案--------------------
自己来实现?
fcntl(fd, F_DUPFD, 0) 如何?