0
说,我有一个包含10个段落的文件。我有10个线程将独立读取这些段落并将数据提供给主线程。C:在多个线程中使用不同文件描述符在不同位置打开文件
如何打开此文件,以便我的处理程序正好在它应该读取的位置。说,我知道每个段落有多少个字节。
我知道我可以遍历字节并到达我想要的部分,但我想要一个更快的方法。有没有?
说,我有一个包含10个段落的文件。我有10个线程将独立读取这些段落并将数据提供给主线程。C:在多个线程中使用不同文件描述符在不同位置打开文件
如何打开此文件,以便我的处理程序正好在它应该读取的位置。说,我知道每个段落有多少个字节。
我知道我可以遍历字节并到达我想要的部分,但我想要一个更快的方法。有没有?
如果每个线程都有自己的文件描述符,则可以以正常方式使用lseek()。如果您试图共享一个文件描述符,则需要处理一个线程的lseek()与另一个线程的read()之间的竞争。 - Arlie Stephens
更好 - 如果你的操作系统有,使用pread()或preadv(),它将lseek()和read/v /()结合起来,而不用改变文件指针。 - Arlie Stephens
如果每个线程都有自己的文件描述符,则可以以正常方式使用lseek()。如果您试图共享一个文件描述符,则需要处理一个线程的lseek()与另一个线程的read()之间的竞争。 – 2014-12-01 19:17:49
更好 - 如果你的操作系统具有它,使用pread()或preadv(),它结合了lseek()和read/v /(),而不改变文件指针。 – 2014-12-01 19:20:04
明白了,谢谢你们两位! – 2014-12-01 19:24:10