3

親は fork を呼び出し、子に新しいセッションを作成させます。子供が制御端末を持っていないことを確認しようとしました。

...

if ((pid = fork()) < 0) {
    perror("fork");
    exit(1);
} else if (pid == 0) {    /* child */
    if (setsid() < 0) {
        perror("setsid");
        exit(1);
    }
    char ch;
    if (read(STDIN_FILENO, &ch, 1) != 1) {
        printf("read error from controlling TTY, errno = %d\n", errno);
    }
    exit(0);
}
...    /* parent */

ご存知のように、エラー メッセージは表示されるはずですが、表示されませんでした。私は何か間違ったことをしましたか?これを適切に行う方法はありますか?ありがとう。

4

1 に答える 1