好的,所以我有一个问题。我必须使用 获取程序的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?