当前位置: 技术问答>linux和unix
如何让文件描述符共享一个文件表项
来源: 互联网 发布时间:2016-11-21
本文导语: RT 目的是写一个和dup2函数功能一样的函数。 其它方面都好做,但是怎么样才能让新创建的文件描述符和原有的文件描述副共享一个文件表项呢? 求这方面的思路。 | 这个估计这能在内核作了...
RT
目的是写一个和dup2函数功能一样的函数。
其它方面都好做,但是怎么样才能让新创建的文件描述符和原有的文件描述副共享一个文件表项呢?
求这方面的思路。
目的是写一个和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结构
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) 如何?
fcntl(fd, F_DUPFD, 0) 如何?