Programme C, transformer en commande LInux

LInus -  
[Dal] Messages postés 6373 Statut Contributeur -
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
A voir également:

1 réponse

[Dal] Messages postés 6373 Statut Contributeur 1 106
 
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