gpt4 book ai didi

c - 从C中的不同线程读取文件

转载 作者:太空宇宙 更新时间:2023-11-04 06:24:29 24 4
gpt4 key购买 nike

我有一个多线程服务器程序,其中每个线程都需要读取文件的内容以检索客户端请求的数据。

我在 C 中使用 pthreads 来完成创建线程并将函数传递给线程将要执行的线程。

在函数中,如果我分配给一个新的 FILE带有 fopen() 的指针然后用 fgets() 读取文件的内容,每个线程都会有自己的文件偏移量吗?也就是说,如果线程 1 正在从文件中读取,并且当线程 2 第一次读取时它位于文件的第 5 行,那么线程 2 是从第 5 行开始读取还是独立于线程 1 在文件中的位置?

最佳答案

每个打开的 FILE 只有一个文件指针。它有一个关联的 FD 和一个文件位置(如您所说的文件偏移量)。

但是您可以fopen 文件两次(从两个不同的线程或就此而言从同一个线程)- 正如您现在的编辑所暗示的那样。这意味着您将有两个关联的 FD 和两个单独的文件位置。

IE,这与线程本身无关,只是如果您想要单独的文件位置,您将需要两个 FD,这(对于 stdio)意味着两个 FILE

关于c - 从C中的不同线程读取文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28932066/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com