对不起我自己的研究,并在这里问。 我时间稍短。
是否有可能有两个或两个以上的线程从一个线程spwaned文件描述符表。 两个或两个以上的子线程正在同时访问同一个文件,同一个文件的两个不同的打开的偏移量是不同的,线程是不同的?
谢谢
文件描述符在线程之间共享。 如果你想要“线程特定的”偏移量,为什么不让每个线程使用不同的文件描述符(多次open(2)
)?
不,每个进程只有一个文件描述符表,它在所有线程之间共享。
从你的问题描述中,你可能想看看pread()和pwrite()函数。
在Linux中,您可以通过CLONE_FILES
标志unshare()
文件描述符表,但是我建议不CLONE_FILES
。
试试pread()/ pwrite()。
您仍然可以在多个线程中共享相同的文件描述符,即,使用pread()/ pwrite()函数可以保证对同一个文件的并行读取/写入操作,因为您需要分别指定读取/写入的偏移量和字节数。