如何重定向到标准输出?
我有一个用 ansi C 编写的 UNIX 应用程序,它将数据直接写入文件。 该文件由参数之一指定。
出于测试目的,我可以使用 /dev/null 作为文件名,这有效地将输出重定向为空。
我希望能够通过类似的方法将输出重定向到标准输出。 这可能吗? 如果是这样,怎么办? 我尝试了以下方法但没有成功:
a.out -f /dev/ttys000
(其中 /dev/ttys000 是由 'w' 列表指定的 tty)
I have a UNIX application written in ansi C that writes data directly to a file. This file is specified by one of the argument parameters.
For testing purposes, I can use /dev/null for the filename, which effectively redirects the output to nothing.
I would like to be able to redirect the output to stdout by a similar method. Is this possible? If so, how? I've tried the following with no luck:
a.out -f /dev/ttys000
(where /dev/ttys000 was the tty specified by a 'w' listing)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
/dev/stdout
/dev/stdout
您可以检测字符串“stdout”参数,然后使用 C 中的 stdout 文件句柄 (1)
http://en.wikipedia.org/wiki/File_descriptor
或使用 /dev/stdout 或/dev/fd/1
如果这是一个“内置”功能而不是用于测试的临时功能,您可能希望在 stdout 文件描述符而不是设备节点上使用 C 函数,因为 C 标准有点多恕我直言,比 POSIX 标准更耐用。
You could detect the string "stdout" argument and then use the stdout filehandle in C (1)
http://en.wikipedia.org/wiki/File_descriptor
Or use /dev/stdout or /dev/fd/1
If this is a 'built-in' feature rather than a temporary thing for testing, you might want to use the C functions on the stdout file descriptor rather than the device node as the C standard is a bit more hardy than the POSIX standard imho.