gpt4 book ai didi

c - 在不同的字节范围内读取和写入同一个文件是否线程安全?

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

我有一个名为“data.txt”的文件,其中始终包含 50 个字节的数据。

我有两个线程。

第一个线程,读取字节0到字节50的内容:

while(1){
char buf[50];
FILE* fp = fopen("data.txt","r");
fread(buf,1,50,fp);
/* process data */
fclose(fp);
}

第二个线程,将数据附加到文件(= 始终在前 50 个字节之后):

while(1){
FILE* fp = fopen("data.txt","a");
fwrite("hello\n",1,6,fp);
fclose(fp);
}

这个解决方案是线程安全的和可移植的吗? (没有段错误,没有数据不一致,...)

最佳答案

正如我在您的其他相关帖子中所写,据我所知,它不应该崩溃。我不知道它是否正确地写入、读取和读取。

如果您使用的是 POSIX 系统:您是否考虑过使用 fifo(参见 http://man7.org/linux/man-pages/man7/fifo.7.html)?我的印象是文件系统只是你底层通信需求的一个 helper ,即实际文件并不重要。

关于c - 在不同的字节范围内读取和写入同一个文件是否线程安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22367231/

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