我使用的是一个FIFO文件,在Linux终端上以mkfifo myFIFO
创建,使用的是C ++代码:
#include <iostream>
using namespace std;
#include <stdio.h>
int main(int argc, char** argv) {
FILE* fp = fopen("/tmp/myFIFO", "w");
fprintf(fp, "Hello, world!\n");
fclose(fp);
cout << "!!!Hello World!!!" << endl; // prints !!!Hello World!!!
return 0;
}
程序保持阻止状态,直到其他进程读取myFIFO
。怎么避免这个? (我希望代码的这种和平保持在FIFO中处理和写入而不进行其他进程读取。直到FIFO满,如果可能的话,我可以丢弃最旧的消息。)