如果管道关闭,程序将退出

时间:2013-07-01 04:17:04

标签: c++ pipe

我正在尝试使用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);
}

主要使用以下方式调用线程:

thread writeThread(writeToPipe);
writeThread.detach();

如果管道未被其他进程打开,则C ++程序将退出而不会出现错误。我不知道如何检查管道是否打开。

0 个答案:

没有答案