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