Programme C, transformer en commande LInux

Fermé
LInus - 23 juin 2014 à 09:37
[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 - 23 juin 2014 à 11:39
Bonjour,

Je viens de finir un programme écrit en C. Ce dernier travail et modifie un fichier. Dans, jusqu'à maintenant je suis obligé de modifié le nom du fichié sur lequel je dois travaillé, pour que mon programme le reconnaisse. J'aurais donc voulu savoir comment je peut faire pour que le nom de fichier je le spécifie en paramètre de ma commande (et que je transforme mon programme en une commande) : par exemple : ma_commane mon_fichier , un peu comme cp nom_fichier nom_copie .
Merci pour vos réponses

1 réponse

[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 1 083
Modifié par [Dal] le 23/06/2014 à 11:40
Salut LInus,

En C standard, il suffit de déclarer main comme cela :
int main(int argc, char **argv)
pour pouvoir accéder à la liste des arguments passés en paramètre de l'exécutable.

Par exemple, comme cela :

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char **argv)
{
    if (argc != 2) {
        fprintf(stderr, "Erreur, argument manquant\n");                         
        return EXIT_FAILURE;
    }

    printf("L'argument est : %s\n", argv[1]);

    return 0;
}


Sous Linux, unistd.h te donnera accès à la fonction getopt, qui est bien pratique pour traiter les arguments de ligne de commande s'ils sont compliqués.

http://www.gnu.org/software/libc/manual/html_node/Getopt.html


Dal
1