我创建了一个命名的 posix 管道,比如 pipe_out,使用
mkfifo $path_tmp/pipe_out
用C打开
out_pipe = fopen(TMP_PATH "/pipe_out", "w");
并使用 fprintf 命令写入它
fprintf(out_pipe,"%s",string);
我想我可以使用 fprintf 的返回值来检查写入了多少,并将其与字符串的实际长度进行比较,以了解是否将完整的字符串写入管道。然后,如果它(过度)满了,我会以某种方式暂停并尝试从尚未写入的内容开始以无限循环再次写入......
这会是什么样子的详细信息,是否有一种更高级的方法可以在管道已满时自动停止(暂停)fprintf。