Я пытаюсь перенаправить stdout и stderr в файл, а затем восстановить их исходные настройки. Я успешно перенаправил вывод в файл, но не могу восстановить их из tty. Это код, который у меня есть:
fid = open("/dev/tty", O_WRONLY);
if (fid < 0) {
fprintf(stderr, "Opening TTY failed.");
exit(1);
} else {
close(1);
dup(fid);
close(fid);
}
открытый вызов на tty всегда терпит неудачу. (возвращает -1). Есть ли что-то принципиально неправильное, что я пытаюсь сделать?
Я также подумал, что, возможно, это может быть проблема с разрешениями, поэтому я проверил их:
crw-rw-rw- 1 корневое колесо 2, 0 21 окт 10:46 /dev/tty
Я разрабатываю Snow Leopard для того, чтобы оно того стоило,
Заранее благодарю за любую помощь.