c - 检查何时没有任何内容通过管道传输到 stdin

发布于 2024-10-17 09:39:47 字数 141 浏览 3 评论 0原文

基本上,我试图在调用程序时检查 stdin 中是否有任何内容,因此如果我有另一个名为 output 的文件写入 stdout 那么 <代码>./输出| ./program 应该可以工作,并且 ./program 应该退出并出现错误

Basically I'm trying to check if anything is in stdin when the program is called, so if I've got another file called output that writes to stdout then
./output | ./program should work and ./program should exit with an error

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

冷情妓 2024-10-24 09:39:47

在 POSIX 中,您可以使用 isatty

In POSIX, you can use isatty.

笑饮青盏花 2024-10-24 09:39:47

isatty 检查 tty,而不 管道。请改用 fstat(STDIN_FILENO, &sb) 并检查 S_ISFIFO(sb.st_mode)

要检查标准输入“中”是否有任何您可以读取的内容,可以使用 poll(2) 以及事件掩码 POLLIN

isatty checks for a tty, not a pipe. Use fstat(STDIN_FILENO, &sb) instead and check for S_ISFIFO(sb.st_mode).

To check whether there is anything "in" stdin that you could possibly read, you use, for example poll(2) with an event mask of POLLIN.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文