stdoutとstderrをファイルにリダイレクトして元の設定に復元しようとしています。私は正常に出力をファイルにリダイレクトしましたが、ttyから復元することはできません。これは私が持っているコードです:/dev/ttyでSTDOUTとSTDERRをリセットする
fid = open("/dev/tty", O_WRONLY);
if (fid < 0) {
fprintf(stderr, "Opening TTY failed.");
exit(1);
} else {
close(1);
dup(fid);
close(fid);
}
open call on ttyは常に失敗します。 (-1を返します)。根拠のない何かが私がやろうとしていることはありますか?
私もそれは多分それはアクセス許可の問題かもしれないので、私はそれらをチェックするのに:
CRW-RW-rw- 1つのルートホイール2、0 10月21日10:46の/ dev/ttyの
私はSnow Leopardでその価値があるものを開発しています。
ありがとうございました。
ただ、追加の注記:私はperrorはを使用して、エラーをプリントアウトします。 「デバイスが設定されていません」と表示されます。 – user849170