[英]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.