【发布时间】:2011-10-25 01:06:18
【问题描述】:
我正在尝试将 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 上的 open 调用总是失败。 (返回 -1)。我正在尝试做一些根本错误的事情吗?
我也认为这可能是权限问题,所以我检查了它们:
crw-rw-rw- 1 根轮 2, 0 Oct 21 10:46 /dev/tty
我正在 Snow Leopard 上开发它的价值,
提前感谢您的帮助。
【问题讨论】:
-
补充一点:我使用 perror 打印出了错误。它说“设备未配置”。