簡體   English   中英

有沒有辦法檢查外部數據是否通過管道傳輸到程序或程序是否獨立運行?

[英]is there a way to check if external data is piped to a program or if program runs on its own?

即數據已由其他程序提供,或者用戶必須手動輸入。 我指的是這兩種狀態:

dir /b /s *.* | myprogram

myprogram

在第二種情況下,程序將等待用戶輸入。 有辦法防止這種情況嗎?

POSIX具有isatty() ,而Visual C ++具有_isatty() ,如果文件描述符是終端或命令行,則兩者都將返回true,例如isatty(fileno(stdin))

是。 使用GetStdHandle得到STD_INPUT_HANDLE ,然后檢查手柄類型的FILE_TYPE_PIPE在第一種情況下或FILE_TYPE_CHAR在第二種情況下,通過調用GetFileType就可以了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM