我知道這是不可能的,我想了解真正的原因背後OS明智爲什麼不能使用mmap和socket fd作爲參數?
1
A
回答
5
由於插座的概念根本不映射到隨機存取內存陣列的概念,這是mmap
給你的抽象。塊設備(磁盤)上的文件通常允許隨機讀取/寫入訪問。這很好地映射到內存中的連續數組,這也給你隨機讀/寫訪問。然而,套接字通常是面向流(或分組/數據報)的流。意思是,通過套接字發送數據流,並從套接字接收數據流。但是,例如,您不能寫入/讀取到開放套接字流的第N個字節 - 這在概念上根本沒有任何意義。
2
相關問題
- 1. 爲什麼我不能使用char作爲函數的參數?
- 2. 爲什麼不MMAP這裏工作
- 3. 爲什麼os.fdopen不能在fd 2上工作?
- 4. c管道爲什麼是fd [0]和fd [1] 3和4
- 5. 爲什麼mmap失敗?
- 6. 爲什麼我不能將此接口作爲參數傳遞?
- 7. 爲什麼不能使用mod_ruby工作?
- 8. 爲什麼我不能使用一個名爲「動作」的參數?
- 9. 爲什麼不能編譯如果我使用CStringArray作爲方法的參數
- 10. 爲什麼configfs不支持mmap?
- 11. 不能使用變量作爲參數
- 12. 爲什麼groovy不使用classpath參數?
- 13. 爲什麼使用Python mmap模塊比從C++調用POSIX mmap要慢得多?
- 14. 爲什麼我的枚舉不能用作方法參數?
- 15. 爲什麼.join()不能使用函數參數?
- 16. 爲什麼動作參數不能與動作同名?
- 17. out參數 - 爲什麼它不工作
- 18. 爲什麼不能使用數組?
- 19. 爲什麼不能removeClass()和addClass()工作?
- 20. 爲什麼在這種情況下使用Math.max作爲參數不起作用?
- 21. 爲什麼我不能使用「instanceof」作爲Int和Integer的比較數組?
- 22. 爲什麼我不能用ADODB和Oracle做「用x作爲(...)」?
- 23. 爲什麼default-template參數不能使用聲明?
- 24. 爲什麼不能使用LINQ爲xml
- 25. 爲什麼要將stdin,stdout和stderr轉換爲單個fd?
- 26. 爲什麼Rebol參與不起作用?
- 27. 爲什麼不能傳遞一個二維數組作爲函數參數?
- 28. 爲什麼我不能使TinyMCE工作?
- 29. 爲什麼fd [1]是write並且fd [0]被讀取?
- 30. 爲什麼模板模板參數不能按預期工作?
感謝偉大的答案, – Michael 2011-02-02 12:32:50