0

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++ プログラムはエラーなしで終了します。パイプが開いているかどうかを確認する方法がわかりません。

4

0 に答える 0