添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

Améliorations / Corrections

Vous avez des améliorations (ou des corrections) à proposer pour ce document : je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site. Emplacement : Description des améliorations :
Cette variable contient le code de la dernière erreur ayant était déclenchée dans le système. Par exemple les différents fonctions d'accès aux fichiers peuvent théoriquement déclencher un très grand nombre d'erreur. Parmis les principaux codes d'erreurs, nous pouvons citer : EAGAIN (POSIX) : si on est en lecture, le descripteur de flux est marqué comme non-bloquant et aucune données n'est disponible pour l'instant. Il faudra retenter la lecture ultérieurement. Si on est en écriture, le flux est vérrouillé et il faudra tenter ultérieurement l'écriture. EBADF (POSIX) : le descripteur de flux ( FILE * ) passé en paramètre est invalide. EDOM (C ISO) : certaines fonctions mathématiques peuvent déclencher une erreur de domaine. EFAULT (POSIX) : un pointeur manipulé par votre programme n'adresse pas un espace mémoire valide. EIO (POSIX) : une erreur d'accès physique au flux vient d'être générée. ERANGE (C ISO) : la valeur, spécifiée à la fonction ayant déclenchée l'erreur,n'est pas dans une plage de valeurs autorisées. Tous les codes erreurs présentés ci-dessus ne font pas partie du standard C ISO : certains proviennent de l'interface POSIX. POSIX (Portable Operating System Inteface for uniX) est une interface de programmation système définissant les principales fonctions d'un système Unix/Linux. Vous pouvez obtenir le message d'erreur textuel associé à un code d'erreur en invoquant la fonction strerror .

Exemple de code

#include <stdio.h>          
#include <assert.h>
#include <errno.h>
int main( int argc, char * argv[] ) {
    FILE * inputFile;
    argc--;   argv++;
    if ( argc == 0 ) {
        printf( "Usage: sample filename...\n" );
        exit( 0 );
    inputFile = fopen( argv[0], "r" );
    if ( inputFile == NULL ) {
        printf( "Cannot open file %s\n", argv[0] );
        exit( 0 );
    while ( ! feof( inputFile ) ) {
        int theCurrentChar = fgetc( inputFile );
        if ( theCurrentChar == EOF ) {
            if ( errno == EIO ) {
                fprintf( stderr, 
                         "Lecture du caractère impossible : erreur IO\n" );
            } else {
                fprintf( stderr, 
                         "Lecture du caractère impossible : erreur inconnue" );
        /* . . . */
    fclose( inputFile );
    return 0;
            

Sujets connexes

EILSEQ
ERANGE
strerror
Les informations présentes dans ce site vous sont fournies dans le but de vous aider à acquérir les compétences nécessaires à l'utilisation des langages ou des technologies considérés. Infini Software ne pourra nullement être tenu responsable de l'utilisation des informations présentes dans ce site. De plus, si vous remarquez des erreurs ou des oublis dans ce document, n'hésitez surtout pas à nous le signaler en envoyant un mail à l'adresse : .