我有一个打开的文件描述符,我想复制它以便可以独立地执行读写和查找操作。 我查看了
int dup(int old_fd)
syscall。问题在于它并不真正适合这里。手册页说明如下http://man7.org/linux/man-pages/man2/dup.2.html:
成功返回后,旧的和新的文件描述符可以互换使用。它们指向同一个打开的文件描述符(参见open(2)),因此共享文件偏移量和文件状态标志;例如,如果通过使用lseek(2)在其中一个文件描述符上修改文件偏移量,则对另一个文件描述符也进行更改。
有没有一种方法可以复制文件描述符,使它们完全独立?
pread()
和pwrite()
可以在您选择的位置使用。但是,您必须在操作系统之外跟踪它。 - Robert Siemer