gpt4 book ai didi

c++ - 写入后跨进程读取文件一致性

转载 作者:行者123 更新时间:2023-11-30 17:12:22 25 4
gpt4 key购买 nike

是否保证跨进程文件读取后写入一致性,特别是在 Windows 上?

即这是一个正确的程序吗:

// proccess1:

char tag = 0xF2;
char buf[256];
while (true) {
fseek(file, 0, SEEK_SET);
fread(buf, sizeof(char), sizeof(buf), file);
if (buf[0] == tag)
break;
sleep(1);

}
printf(&buf[1]); // Hello World

-

// process2:
char tag = 0xF2;
char[] buf = "Hello World";
sleep(rand() % 10);
fseek(file, 1, SEEK_SET);
fwrite(str, sizeof(char), sizeof(buf), file);
fseek(file, 0, SEEK_SET);
fwrite(&tag, sizeof(char), 1, file);

最佳答案

当其他人正在写入时进行读取时,当读取和写入操作位于同一数据 block 上时可能会导致问题,从而可能会产生不可预测的数据。

从不同的 block 读取并写入另一个 block 不会导致任何问题。

同时读写不会导致程序崩溃。

关于c++ - 写入后跨进程读取文件一致性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31623859/

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