说,我有一个包含10个段落的文件。我有10个线程将独立读取这些段落并将数据提供给主线程。
如何打开此文件,以便我的处理程序正好位于应该读取的位置。说,我知道每个段落有多少字节。
我知道我可以遍历字节并进入我想要的部分,但我想要更快的方式。有没有?
答案 0 :(得分:0)
如果每个线程都有自己的文件描述符,则可以正常方式使用lseek()。如果你试图共享一个文件描述符,你需要处理一个线程的lseek()和另一个的read()之间的比赛。 - Arlie Stephens
更好 - 如果你的操作系统有它,使用pread()或preadv(),它们组合lseek()和read / v /(),而不更改文件指针。 - Arlie Stephens