有沒有一個選項,read()的一部分,當在文件描述符上調用read()時,它只打印出空字符到空終止符?使用read()讀取一個空終止符()
2
A
回答
7
對不起,沒有。 read()
根本不查看數據;它只讀取儘可能多的字節(但不超過緩衝區大小)。
我將與更高級別的做到這一點stdio.h
功能,通過調用getc()
(和寫入緩衝區),直到我看到了一個NULL字節,然後在NUL ungetc()
。
3
如果你的意思讀取到空終止的代替打印,則不:它只是除非在手冊頁列出的故障情況之一發生時,讀取您指定的字節數,或達到最終的文件。 (文本文件中沒有NUL終止符,但我想你知道這一點。)
3
如果不使用緩衝stdio或您自己的緩衝系統,讀取特定分隔符或除固定字節數之外的任何其他條件的唯一方法是逐字節讀取。如果在strace
下運行shell腳本,您會注意到shell命令read
以這種方式工作,因爲它必須將後續輸入保留爲未讀,以便可以由繼承fd的其他進程讀取。
0
有一種情況,其中read()將爲您執行行處理,這是在終端上打開文件描述符(pty/tty)的時候。你可以通過操作termio結構來設置你的行分隔符。我不知道你是否可以將NUL設置爲你的行尾字符。
相關問題
- 1. 用read讀取一個文件word()
- 2. C++:爲什麼空格在讀取時總是終止一個字符串?
- 3. 使用自定義終止符與indy讀取字符串
- 4. 空終止符\ 1?
- 5. Python Pandas使用特定行終止符讀取CSV文件
- 6. 從另一個goroutine中止Read()調用
- 7. SQL字符串空終止?
- 8. HTMLInputHidden空終止字符
- 9. base64編碼空終止符
- 10. 終止unicode空字符
- 11. 空終止字符串
- 12. C字符串空終止
- 13. C# - 從第一個空終止符開始修剪字符串
- 14. ReadProcessMemory讀取一個空字符串
- 15. 無法使用read()系統調用從其他終端讀取數據
- 16. Fortran read()讀取最後一行兩次?
- 17. 多輸出參數始終爲空.Read
- 18. 。 ReadLine()與Read ByteArray讀取哪個更好?
- 19. Netty 4 proxy:如何在第一個PDU之後停止讀取直到下一個read()調用?
- 20. 將一個以空字符結尾的字符串與一個非空終止的字符串進行比較
- 21. 用ifstream讀取二進制結構read()
- 22. 在C中終止一個字符串
- 23. 在MIPS中終止一個字符串?
- 24. 使用不同的行終止符在Python中讀取csv文件
- 25. 獲取一個進程終止
- 26. 終止一個字符串與一個semicolmn和添加空間VB.Net
- 27. 如何在第一個空行停止使用xlrd讀取電子表格?
- 28. 如何終止從cin讀取?
- 29. 讀取連續輸入終止條件
- 30. 使用Process.kill異常終止進程後讀取StdOut
也許你正在考慮fgets(),但它適用於FILE *而不是文件描述符。 – 2011-03-25 17:54:59