C语言中带有低级api的重定向标准输出
有没有办法用低级API重定向stdout。。。尚未找到实际执行此操作的函数或方法……系统调用应该允许您重定向stdout,如中所示C语言中带有低级api的重定向标准输出,c,operating-system,C,Operating System,有没有办法用低级API重定向stdout。。。尚未找到实际执行此操作的函数或方法……系统调用应该允许您重定向stdout,如中所示 freopen在重定向到文件时也可以工作,但也可以使用dup 使用管道和套接字。您可以使用freopen()将其重定向到文件。您可以使用freopen()将标准输出重定向到文件。如果您使用的是类似posix的系统,您可以使用close()、dup()和open(),尽管它们与文件描述符而不是文件一起工作。我相信dup2(fd,1)会起作用,例如,在使用open()打
freopen
在重定向到文件时也可以工作,但也可以使用dup
使用管道和套接字。您可以使用
freopen()
将其重定向到文件。您可以使用freopen()
将标准输出重定向到文件。如果您使用的是类似posix的系统,您可以使用close()
、dup()
和open()
,尽管它们与文件描述符而不是文件一起工作。我相信dup2(fd,1)会起作用,例如,在使用open()打开fd之后。是的!疯狂触摸打字技能FTW!如果您有一个变量文件*f
,则可以使用fileno(f)
获取fd。类似这样的内容:dup2(fileno(f),1)
。谢谢,我从来不知道如何将文件*
和常规fd
s混淆起来。我想在I/O中混用它们会导致灾难?(即,文件*
函数不知道您对fd的较低级别访问权限)