269 votes

Comment savoir ce que signifie l’errno ?

Lors de l’appel j’ai un . Ce que cela signifie ? Comment puis-je connaître la signification de cette `` ?

395voto

Commodore Jaeger Points 11949

Vous pouvez utiliser strerror() pour obtenir une chaîne explicite pour le numéro d'erreur. C'est la même chaîne de caractères imprimés en perror() mais il est utile si vous êtes à la mise en forme du message d'erreur pour autre chose que la sortie d'erreur standard.

Par exemple:

#include <errno.h>
#include <string.h>

/* ... */

if(read(fd, buf, 1)==-1) {
    printf("Oh dear, something went wrong with read()! %s\n", strerror(errno));
}

Linux prend également en charge explicitement-thread-safe variante strerror_r().

60voto

Josh Kelley Points 24438

Au lieu de courir sur n’importe quel code d’erreur vous obtenez, vous pouvez récupérer la liste complète des valeurs sur votre système avec l’one-liner suivant :

``

51voto

Pithikos Points 1227

Sous Linux, il y a aussi un programme/script très soigné qui peut dire tout de suite ce qui signifie que chaque code d’erreur. L’installer avec `` . Il devrait être dans votre repos si vous avez Ubuntu.

Alors si vous voulez par exemple obtenir la description d’erreur de type 2, il suffit de taper `` dans le terminal.

Utilisation `` pour obtenir une liste avec toutes les erreurs et leurs descriptions. Beaucoup plus facile que les autres méthodes mentionnées par affiches précédentes.

20voto

schnaader Points 26212

Code d’erreur 2 signifie « Fichier ou répertoire introuvable ». En général, vous pouvez utiliser la fonction perror pour imprimer une chaîne lisible humaine.

6voto

dsm Points 7429

Voici les docs. qui devrait vous dire ce que cela signifie et ce qu’il faut faire avec eux. Vous devriez éviter d’utiliser la valeur numérique et utiliser les constantes qui y sont énumérés, comme le nombre peut-être changer entre les différents systèmes.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X