Participer au site avec un Tip
Rechercher
 

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 :

Fonction access - Entête <unistd.h>

#include <unistd.h>

Fonction access

int access( const char * pathname, int aMode );

La fonction access vérifie l'existence et les autorisations d'accès au fichier spécifié par le paramètre pathname. L'information à vérifier doit être spécifié dans le paramètre aMode.

il est possible de tester plusieurs permissions simultanément en les combinant en utilisant l'opérateur binaire |. Par exemple, pour tester l'existence et la permission de lecture, on utilisera F_OK | R_OK.

Paramètres

Valeur de retour

La fonction access renvoie 0 si l'accès au fichier est autorisé en fonction du mode d'accès spécifié. Si l'accès est refusé ou si une erreur s'est produite, la fonction renvoie -1. Si une erreur est constatée, la variable errno sera fixée avec le code erreur constaté.

Codes erreurs pouvant être déclenchés

Exemple de code

L'exemple de code suivant permet de créer un dossier test dans le répertoire courant et de s'y placer avant de créer un nouveau fichier.

 1 
 2 
 3 
 4 
 5 
 6 
 7 
 8 
 9 
 10 
 11 
 12 
 13 
 14 
 15 
 16 
 17 
 18 
 19 
 20 
 21 
 22 
 23 
 24 
 25 
 26 
 27 
 28 
 29 
 30 
 31 
 32 
#include <stdio.h>
#include <stdlib.h>

#include <unistd.h>        // access

int main(int argc, char *argv[]) {
    if (argc != 2) {
        printf("Usage: %s <file>\n", argv[0]);
        return 1;
    }

    if (access(argv[1], F_OK) == 0) {
        printf("%s is existing\n", argv[1]);
    } else {
        perror("access");
        exit(EXIT_FAILURE);
    }

    if (access(argv[1], R_OK) == 0) {
        printf("%s is readable\n", argv[1]);
    }

    if (access(argv[1], W_OK) == 0) {
        printf("%s is writable\n", argv[1]);
    }

    if (access(argv[1], X_OK) == 0) {
        printf("%s is executable\n", argv[1]);
    }

    return EXIT_SUCCESS;
}
Exemple d'utilisation de la fonction chdir

Et voici un exemple d'exécution de ce programme.

$> gcc -o essai essai.c 
$> ./essai essai
essai is existing
essai is readable
essai is writable
essai is executable
$> ./essai essai.c 
essai.c is existing
essai.c is readable
essai.c is writable
$> ./essai essai2.c 
access: No such file or directory
$>

Conformité

POSIX 88 (IEEE Std 1003.1-1988) et versions ultérieures.

Sujets connexes