Quelqu'un peut-il aider à expliquer ce que signifie une valeur errno de ENOENT lorsque la fonction de socket bind() échoue? La page de manuel indique que cela signifie que "le fichier n'existe pas". Quel fichier? J'ai essayé d'appeler bind() avec un mauvais descripteur de fichier et cela donne errno à EBADF comme prévu, donc ce n'est pas ça.erreur bind() avec errno == ENOENT?
Répondre
Ceci est presque certainement un bug dans votre code. Si je devais deviner, ce que je fais, je dirais que vous avez un mauvais chemin de socket UNIX dans l'adresse que vous passez à lier.
Il est également possible que le code d'erreur ne provienne pas de bind - vérifiez la sécurité de votre thread.
Malheureusement, je Impossible de publier le code réel. Il est réparti sur 4 classes dans un grand système orienté objet. J'ai essayé de passer une adresse explicitement mauvaise à lier et j'ai eu EFAULT. Passer une mauvaise taille (3ème arg) donne EINVAL. J'ai également localisé la source du noyau et ne peux pas encore trouver où n'importe quel code de bind() pourrait renvoyer ENOENT. –
Ah, j'ai compris - réponse éditée. Celui-ci est en fait le problème :-). Désolé, il a fallu si longtemps pour le comprendre. – Borealid
Trouvé le problème, mais ne comprends toujours pas d'où vient l'ENOENT. Longue histoire, mais nous utilisions la mauvaise adresse IP dans l'appel bind(), qui aurait dû donner errno à EADDRNOTAVAIL. L'ENOENT m'a donc envoyé faire une chasse aux oies sauvages. Merci d'avoir poussé ma réflexion. :) –
- 1. Erreur lors du déplacement d'un fichier (Errno :: ENOENT)
- 2. erreur sql errno: 121
- 3. "ERREUR Errno :: EPIPE: Broken pipe" avec Culerity
- 4. Installation de rails-3.0.0.beta4, et obtention du royal (Errno :: ENOENT)
- 5. Erreur MySQL lorsque l'indice baisse (errno 150)
- 6. BIND ERREUR: Adresse déjà utilisée
- 7. erreur de socket Errno en python
- 8. problème avec boost :: bind
- 9. Erreur Bind 10038 avec Windows application prise en c
- 10. bind() échoue avec une erreur de socket Windows 10038
- 11. erreur du compilateur interne et boost :: bind
- 12. IOError: [Erreur errno Err] proxy non valide pour http: 'xxx.xxx.xxx.xxx'
- 13. socket.error: [Errno 10054]
- 14. DB Erreur lors de la création - Errno 150
- 15. Odd socket() erreur - renvoie -1, mais errno = ERROR_SUCCESS
- 16. bind combiné avec un retard
- 17. Augmenter child_exception Errno 2
- 18. IOError: [Errno 22] Argument invalide avec clock() étant passé en
- 19. curl errno 35 (Erreur de protocole SSL inconnue en rapport avec [site sécurisé]: 443)
- 20. SSL_Connection a échoué avec SSL_ERROR_SYSCALL avec errno = 2?
- 21. "Interface" comme sémantique avec boost :: bind
- 22. Pourquoi la fonction C _stat ne définit pas correctement errno lorsque l'accès est refusé au dossier
- 23. Boost bind function
- 24. boost :: bind & std :: set :: count erreur de compilation
- 25. Bind: Adresse déjà utilisée
- 26. Aide bind boost/fonctions
- 27. Question C++: boost :: bind recevoir autre boost :: bind
- 28. Problème avec GridView, Bind() et DropDownList
- 29. en utilisant std :: sort avec boost :: bind
- 30. L'utilisation .bind (Mootools) avec l'événement onClick
voir http://linux.die.net/man/2/bind pour la forme correcte, comparez-la à la vôtre, postez ce que vous avez si vous ne pouvez pas comprendre pourquoi le vôtre ne fonctionne pas – KevinDTimm