【发布时间】:2012-11-12 14:40:18
【问题描述】:
好的,我有一个问题。我必须使用execlp 获取程序的输出并将输出直接转到文件。问题是程序只有在 tty 中运行时才会输出某些信息(我猜它调用了isatty(3))。
到目前为止,这是我的代码
void main(){
int fd = open("file", O_WRONLY | O_CREAT | O_TRUNC, 0755);
close(1);
dup(fd);
execlp("program","program",NULL);
close(fd);
}
我不想使用诸如script(可行)之类的操作系统命令。
所以问题是,我怎样才能“欺骗”程序认为它正在写入 tty?
【问题讨论】:
-
使用“pty”(伪终端)作为输出。 [请参阅此问题][1] 了解详细信息。 [1]:unix.stackexchange.com/questions/21147/…
-
我希望 SO 不会将“琐碎”的答案转换为 cmets :-(