基本上我試圖檢查程序被調用時是否有任何標準輸入,所以如果我有另一個文件輸出寫入標準輸出然後 ./output | ./program
應該工作並且./program
應該退出並顯示錯誤c - 檢查什麼時候什麼都沒有管道到標準輸入
4
A
回答
6
在POSIX中,您可以使用isatty
。
2
isatty
檢查一個tty,而不是一個管道。改用fstat(STDIN_FILENO, &sb)
並檢查S_ISFIFO(sb.st_mode)
。
要檢查是否有任何可以讀取的「in」stdin,請使用例如poll(2)
,事件掩碼爲POLLIN
。
相關問題
- 1. 什麼時候到標準和文本檢查點在qtp
- 2. 程序什麼時候什麼都沒有提示
- 3. JMH什麼時候什麼都不做?
- 4. 爲什麼login命令不接受管道標準輸入?
- 5. 什麼時候使用資產管道
- 6. 什麼時候應該使用標準的html標籤/輸入,什麼時候應該使用asp.net控件?
- 7. 在用戶輸入沒有收到的時候做點什麼
- 8. QTreeWidget :: currentItem什麼時候沒有選擇什麼時候返回?
- 9. VBA發現,如何捕獲什麼時候什麼都沒有找到
- 10. C:重定向標準輸入,標準輸出到管道
- 11. 目標C什麼時候使用alloc和什麼時候不到
- 12. 什麼時候加入名字,什麼時候不加入?
- 13. 爲什麼重定向到標準輸出和管道編程標準輸入如此普遍
- 14. 什麼是標準輸入緩衝區?
- 15. 檢查numpy輸入尺寸的標準方法是什麼?
- 16. 什麼都沒有?
- 17. C#多態 - 爲什麼&什麼時候
- 18. 標準輸入中的EOF是什麼?
- 19. 有沒有什麼辦法知道什麼時候動畫在FragmentTransactions中完成
- 20. 有沒有什麼辦法知道什麼時候安裝了crontab?
- 21. min-height:100%什麼時候什麼都沒有明確的高度?
- 22. 爲什麼沒有維基管道?
- 23. 什麼時候錯誤檢查太多?
- 24. 什麼時候檢查碰撞
- 25. 什麼時候sys.stdin在Python中沒有?
- 26. 爲什麼Me.components什麼都沒有?
- 27. 爲什麼gridview.selectedColumns什麼都沒有?
- 28. 什麼時候注入構造函數,什麼時候是CDI
- 29. 當我在python中輸入時,什麼都沒有出現
- 30. WPF DataGrid - 我想知道什麼時候用戶輸入新行
據我所知,如果程序從tty讀取,OP會產生一個錯誤,所以isatty是一個很好的答案。都輸出|程序和程序<文件將失敗isatty。 – 2011-02-12 05:35:34