基本上我試圖檢查程序被調用時是否有任何標準輸入,所以如果我有另一個文件輸出寫入標準輸出然後 ./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. 當管道寫入標準輸出時,爲什麼write()管道退出程序?
- 3. 程序什麼時候什麼都沒有提示
- 4. 爲什麼login命令不接受管道標準輸入?
- 5. 什麼時候應該使用標準的html標籤/輸入,什麼時候應該使用asp.net控件?
- 6. 什麼時候使用資產管道
- 7. 在用戶輸入沒有收到的時候做點什麼
- 8. VBA發現,如何捕獲什麼時候什麼都沒有找到
- 9. C:重定向標準輸入,標準輸出到管道
- 10. 目標C什麼時候使用alloc和什麼時候不到
- 11. 什麼時候加入名字,什麼時候不加入?
- 12. 什麼都沒有?
- 13. 爲什麼沒有維基管道?
- 14. 什麼時候檢查碰撞
- 15. 當我在python中輸入時,什麼都沒有出現
- 16. 爲什麼Me.components什麼都沒有?
- 17. 什麼時候注入構造函數,什麼時候是CDI
- 18. WPF DataGrid - 我想知道什麼時候用戶輸入新行
- 19. 管道標準輸入到R
- 20. 什麼時候Python導入?
- 21. 什麼是「Clean C」,它與標準C有什麼不同?
- 22. 異步隊列,文件流到底怎麼知道什麼時候都完成
- 23. 有沒有什麼辦法可以知道在C++中輸出到標準輸出的大小?
- 24. 測試什麼時候沒有屬性
- 25. 爲什麼SSH不能在標準輸入上使用管道密碼?
- 26. ZF2什麼時候使用getServiceLocator()什麼時候不到
- 27. 什麼時候創建了app.config,什麼時候app.exe.config和有什麼區別
- 28. Visual c#什麼都沒有出現
- 29. 什麼都沒有插入數據庫?
- 30. 什麼時候和爲什麼沒有實現(java.lang.reflect.InvocationTargetException)發生?
據我所知,如果程序從tty讀取,OP會產生一個錯誤,所以isatty是一個很好的答案。都輸出|程序和程序<文件將失敗isatty。 – 2011-02-12 05:35:34