Utiliser le terminal linux pour compiler en C

Anna-prog Messages postés 1 Statut Membre -  
mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour, je dois réaliser un programme en C sur Linux. Je sais que pour compiler en utilisant le terminal, il faut passer par ces étapes là :

gcc -c exemple.c
gcc -o exemple exemple.o
./exemple

Le fichier .c que je compile doit ouvrir un fichier (fopen, ...). Je fait donc un printf("Entrez le nom du fichier") dans mon programme. Cependant, je voudrai savoir s'il est possible, directement sur le terminal, de faire appel à mon fichier tout en passant l'argument, comme ceci : exemple nom_du_fichier_a_ouvrir.txt.

Merci pour votre aide.

1 réponse

  1. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 940
     
    Oui tout à fait :

    example.c

    #include <stdio.h>
    #include <stdlib.h>
    
    int main(int argc, char **argv) {
        FILE       * fp;
        const char * filename;
        char       * line;
        size_t       len;
    
        // Contrôler le nombre d'arguments
        if (argc != 2) {
            fprintf(stderr, "usage: %s filename\n", argv[0]);
            return EXIT_FAILURE;
        }   
        
        // Ouvrir le fichier en lecture
        filename = argv[1];
        if (!(fp = fopen(filename, "r"))) {
            fprintf(stderr, "%s: cannot open %s\n", filename);
            return EXIT_FAILURE;
        }   
        
        // Lire le fichier ligne par ligne
        while (getline(&line, &len, fp) != -1) {
            printf("%s", line);
        }
        
        // Fermer le fichier, libérer la mémoire (voir man getline)
        fclose(fp);
        free(line);
        return EXIT_SUCCESS;
    } 


    Puis lance :

    gcc -o example example.c
    ./example /etc/fstab


    Ceci va afficher le contenu du fichier /etc/fstab.

    Bonne chance
    0