gpt4 book ai didi

c - 如何使用 FIFO 等待有人写入和读取?

转载 作者:太空狗 更新时间:2023-10-29 11:12:58 27 4
gpt4 key购买 nike

如题所示,我在 Linux 系统中使用 C 在两个程序之间完成这项工作。但是,我遇到了一些问题。假设我有一个服务器在十轮内将数据写入 FIFO,并且客户端将读取每一轮数据并写入另一个 FIFO 来馈送返回服务器。客户端将在每一轮中阻塞,直到服务器写入数据为止。但是,我的客户端程序不能这样做。

我使用 fopen 打开 FIFO,使用 fgets 读取数据。好像没有阻塞等待数据写入。

客户端代码:

FILE *fp_R,*fp_W;
char temp[100];
fp_R = fopen(FIFO_R,"rb");
fp_W = fopen(FIFO_W,"wb");
for ( i = 0 ; i < 10 ; i ++ ) {
fgets(temp, 100, fp_R);
Handle Data;
fprintf(fp_W,DATA);
}

我想fgets等待服务器写入数据,这样我就可以处理每一轮

谢谢大家的帮助

最佳答案

正如 TonyB 所说,fopen() 函数将返回一个文件指针 FILE*

FILE *fp_R, *fp_W;
char temp[100];
fp_R = fopen(FIFO_R,"rb");
fp_W = fopen(FIFO_W,"wb");
for ( i = 0 ; i < 10 ; i ++ ) {
char* ret = fgets(temp, 100, fp_R);
while(ret == null)
{
Sleep(1);
}
Handle Data;
fprintf(fp_W,DATA);
}

关于c - 如何使用 FIFO 等待有人写入和读取?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33949443/

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