Я использую файл FIFO, созданный как mkfifo myFIFO
на терминале Linux, в коде 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 не будет заполнен, когда, если возможно, я могу отказаться от самых старых сообщений).