1
A
回答
4
不可能寫dscanf
。
scanf系列要求緩衝流,否則它能夠放回一個已讀取的字符。 POSIX文件描述符都不是。
考慮這個流
1234xyz
你會如何掃描數過嗎?您不能逐字節地讀取它,並在x
之前停止。這需要透視。你也無法閱讀x
並決定你不需要它,因爲你不能放回去。
+0
所以沒有'dungetc()'。同樣,函數名稱看起來「不吸引人」。 – chux
2
因爲printf
和scanf
函數族是C語言的一部分,所以處理文件描述符的函數不是。相反,它們是操作系統API的一部分(在Linux或OSX等POSIX平臺上,其他平臺模擬這些系統調用)。
而dprintf
功能是而不是一個標準的C函數,它是一個擴展。從this printf
(and family) manual page:
的
dprintf()
和vdprintf()
功能均是後來在POSIX.1-2008標準化原本GNU擴展。
沒有dscanf
功能可能僅僅是那些做出原始dprintf
擴展的人的疏忽。
相關問題
- 1. 爲什麼Me.components什麼都沒有?
- 2. 爲什麼我的課沒有什麼?
- 3. 爲什麼gridview.selectedColumns什麼都沒有?
- 4. 爲什麼沒有java.lang.UnsupportedClassVersionError?
- 5. 爲什麼沒有asyncContext.cancel()
- 6. 爲什麼沒有uniform_distribution?
- 7. 爲什麼沒有SortedList
- 8. 爲什麼Java沒有宏?
- 9. 爲什麼沒有UTF-24?
- 10. 爲什麼UDP沒有「accept()」?
- 11. 爲什麼沒有InterlockedExchangeSubtract64?
- 12. 爲什麼current_user沒有?
- 13. 爲什麼沒有ConfigurationManager?
- 14. 爲什麼沒有Dictionary.TrimExcess()?
- 15. 爲什麼沒有啓用
- 16. 爲什麼沒有輸出?
- 17. ModelState.AddModelError爲什麼沒有ModelState.AddModelSuccess?
- 18. 爲什麼沒有NSHTTPURLProtocol類?
- 19. 爲什麼Scala沒有decltype?
- 20. WCF - 爲什麼沒有WSDL
- 21. xActiveDirectory沒有cmdlet。爲什麼?
- 22. 爲什麼沒有std :: inplace_merge_unique?
- 23. 爲什麼沒有String#shift()?
- 24. 爲什麼沒有Math.floor(float)?
- 25. 沒有屎樹,爲什麼?
- 26. 爲什麼沒有std :: from_string()?
- 27. 爲什麼datetime.time沒有astimezone?
- 28. 爲什麼沒有記錄?
- 29. 爲什麼沒有NSOperationWithBlock
- 30. 爲什麼我沒有xlrd?
對不起,我的錯。但我想我仍然有同樣的問題,是否有一個原因,他們不包括dscanf? – rondoisthebest