辨識標準輸入類型:C/C 中的終端與管道
在Python 互動式shell 中,不含參數執行「python ”會啟動REPL 介面。然而,透過終端運行“cat | python”會繞過交互模式,這表明Python將stdin(標準輸入)檢測為管道。在 C/C 或 Qt 中如何做出類似的區分?
解決方案:利用isatty()
偵測標準輸入是否連接到終端或在C/C 中使用管道,使用函數isatty():
#include <stdio.h> #include <io.h> ... if (isatty(fileno(stdin))) { printf("stdin is a terminal\n"); } else { printf("stdin is a file or a pipe\n"); }
在Windows 平台上,函數名稱為帶下劃線前綴:
if (_isatty(_fileno(stdin))) { printf("stdin is a terminal\n"); } else { printf("stdin is a file or a pipe\n"); }
以上是如何區分 C/C 中的端子輸入和管路輸入?的詳細內容。更多資訊請關注PHP中文網其他相關文章!