我正在尝试将 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 Oct 21 10:46 /dev/tty
我在 Snow Leopard 上开发它的价值,
提前感谢您的帮助。