1
Q
斷言標準輸入打開
A
回答
4
您無法確定FILE*
是否已關閉。 fclose
可能free
FILE
它指向的對象,因此在fclose
之後對象的內容可能未定義。即使是stdin
也是如此。我之前提出的解決方案是錯誤的。對於那個很抱歉。
您可以在POSIX平臺上做的最好的是一樣的東西
bool stdin_open()
{
errno = 0;
fcntl(STDIN_FILENO, F_GETFD);
return errno == EBADF;
}
但真正告訴你一些有關標準輸入FD,而不是stdin
對象。
相關問題
- 1. socat阻斷標準輸入
- 2. 打開Windows控制檯的標準輸入/標準輸出/標準輸入/輸出爲win32和win64在C
- 3. 替換,然後通過SSH打開標準輸入/標準輸出
- 4. C#進程中斷大標準輸入
- 5. subprocess.Popen.communciate()與標準輸入的斷開的管道
- 6. pytest中的自定義斷言應該否定標準斷言
- 7. 標準輸入Java輸入
- 8. 閱讀標準輸入被打破
- 9. 關閉然後在Linux下打開C標準輸入
- 10. ruby popen3 - 如何重複寫入標準輸入和讀取標準輸出而不重新打開過程?
- 11. Linux的標準輸入,標準輸出,標準錯誤
- 12. NCURSES標準輸入
- 13. 從標準輸入
- 14. 從標準輸入
- 15. Python標準輸入
- 16. 貓打破了計劃,手動標準輸入輸入不
- 17. 打開文件,打印到標準輸出,追加到文件,並再次打印到標準輸出
- 18. 標準輸入/輸出流
- 19. 從標準輸入讀取和打印到紅寶石標準輸出
- 20. 調試斷言失敗,打開CV SIFT
- 21. 打開子窗口標準
- 22. 關閉它們後重新打開標準輸出和標準輸入文件描述符
- 23. 寫入標準輸出並從標準輸入讀取C
- 24. csh標準輸入到Python標準輸入?
- 25. bash:沖洗標準輸入(標準輸入)
- 26. 回波標準輸入或標準輸入
- 27. 如何從遍歷Subprocess.Popen標準輸出的循環中斷開?
- 28. SSH:安全標準輸出針對斷開
- 29. C中的標準輸入和輸出標準輸入和輸出
- 30. C語言。從標準輸出讀取
爲什麼你會關注這個 - 是什麼讓你覺得代碼中的其他東西足夠愚蠢的關閉stdin? –
@JonathanLeffler我在一家公司工作。可以編寫一個函數A(),它在完成時打開和關閉一個文件。其他一些程序員可以將STDIN作爲參數傳遞。如果我的函數在A()函數後被調用,它將不會找到STDIN。這就是爲什麼。 –
@DanParadox:那麼你的同事應該採用一個函數應該關閉一個'FILE *'的原則,當且僅當它打開它。 –