任何人都可以幫助解釋當bind()的socket函數失敗什麼ENOENT的錯誤值意味着什麼?手冊頁說這意味着「該文件不存在」。什麼文件?我試着用一個壞的文件描述符調用bind(),並按照預期將errno設置爲EBADF,所以不是這樣。與errno == ENOENT綁定()錯誤?
回答
這幾乎可以肯定是在你的代碼中的錯誤。如果我不得不猜測,我該怎麼做,我會說你在傳遞的地址中綁定了一個錯誤的UNIX套接字路徑。
也有可能出錯的代碼不是從綁定來 - 檢查你的線程安全。
不幸的是,我不能發佈實際的代碼。它分佈在一個面向對象的大型系統中的4個課程中。我試着傳遞一個明確的錯誤地址來綁定並獲得EFAULT。傳遞一個錯誤的大小(第三個參數)給EINVAL。我還找到了內核源代碼,並且無法找到任何bind()代碼可能返回ENOENT的地方。 – 2010-08-05 12:40:06
啊,明白了 - 回答編輯。這其實是個問題:-)。抱歉,花了這麼長時間才弄明白。 – Borealid 2010-08-05 14:57:01
發現問題,但仍不明白ENOENT來自哪裏。說來話長,但我們使用了錯誤的IP地址進入該bind()的調用,它應該設置errno EADDRNOTAVAIL。所以ENOENT就把我送走了。謝謝你一直在鼓勵我的想法。 :) – 2010-08-05 16:11:44
- 1. Errno :: ENOENT錯誤Ruby應用程序
- 2. rubyXL(Errno :: ENOENT)
- 3. Errno :: ENOENT Rails 3.1.1
- 4. i18next錯誤:ENOENT
- 5. 移動文件時出錯(Errno :: ENOENT)
- 6. 錯誤ENOENT與HTML-PDF phantomjs
- 7. Mac npm錯誤與ENOENT
- 8. Errno :: ENOENT in Devise :: RegistrationsController#update
- 9. Errno :: ENOENT在ArtsController#創建
- 10. readlink將errno設置爲ENOENT
- 11. 錯誤:34,代碼:'ENOENT'
- 12. 錯誤的Ruby on Windows 7的變量Errno :: ENOENT:
- 13. Rails的第一個應用程序錯誤 - Errno :: ENOENT
- 14. child_process.spawn ENOENT錯誤
- 15. fs.createWriteStream錯誤:ENOENT
- 16. 錯誤1005 errno:150與mysql
- 17. jruby gem安裝錯誤或任何寶石:「錯誤:執行寶石時...(Errno :: ENOENT)」
- 18. node.js的fs.rename()錯誤ENOENT
- 19. ruby gem更新錯誤Enoent
- 20. 綁定套接字與errno失敗88
- 21. 菌種ENOENT錯誤安裝
- 22. ENOENT localhost:3306錯誤
- 23. Spawn ENOENT錯誤 - NodeJS
- 24. ImageMagick的ENOENT錯誤
- 25. 錯誤與綁定變量
- 26. npm ERR!錯誤:產卵ENOENT
- 27. 意外錯誤error_class = errno的:: EADDRINUSE錯誤=#<errno的:: EADDRINUSE:地址已在使用 - 綁定(2)爲 「0.0.0.0」 端口24224
- 28. Errno :: ENOENT無故障啓動後
- 29. 爲什麼getcwd失敗errno ENOENT
- 30. Sinatra Errno :: ENOENT - 找不到文件
看到http://linux.die.net/man/2/bind正確的形式,把它比作你的,後你有什麼,如果你不能弄清楚爲什麼你不工作 – KevinDTimm 2010-08-04 18:16:00