我正在尝试使用 C++ 写入管道。下面的代码在一个额外的线程中被调用:
void writeToPipe()
{
int outfifo;
char buf[100];
char outfile[] = "out";
mknod(outfile, S_IFIFO | 0666, 0);
if ((outfifo = open(outfile, O_WRONLY)) < 0) {
perror("Opening output fifo failed");
return false;
}
int currentTimestamp = (int)time(0);
int bufLen = sprintf(bug, "Time is %d.", currentTimestamp);
write(outfifo, buf, bufLen);
}
线程在 main 中使用:
thread writeThread(writeToPipe);
writeThread.detach();
如果管道没有被其他进程打开,C++ 程序就会退出而不会出错。我不知道如何检查管道是否打开。