Bonjour, je vais écrire pour vous un exemple de code, vous l'expliquer et j'espère vraiment que cela vous aidera. le prototype de la fonction est quelque chose comme :
int system(const char* cmd) ;
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_CMN_LEN 100
int main(int argc, char *argv[])
{
char cmd[MAX_CMN_LEN] = "", **p;
if (argc < 2) /*no command specified*/
{
fprintf(stderr, "Usage: ./program_name terminal_command ...");
exit(EXIT_FAILURE);
}
else
{
strcat(cmd, argv[1]);
for (p = &argv[2]; *p; p++)
{
strcat(cmd, " ");
strcat(cmd, *p);
}
system(cmd);
}
return 0;
}
1). ouvrir un terminal et compiler le programme
2) Lancer le programme (par exemple sous Ubuntu) ./program_name comman_name -anything - anything
exemple : ./a.out locale -a
cet exemple affiche toutes les locales supportées par mon compilateur qui est gcc.
plus d'info :
p est un pointeur sur un caractère (comme argv) p = &argv[2], pointe sur une chaîne de -quelque chose je cat tous les -anythings dans ma chaîne cmd je quitte la boucle quand *p pointe sur NULL regardez ceci : -> j'utiliserai ce symbole pour dire pointe vers (ne le confondez pas avec l'opérateur de sélection de la flèche droite).
argv[0] -> nom du programme
argv[1] -> command_name (dans cet exemple, le nom de la commande sera locale, mais entrez la commande que vous voulez vérifier à la place)
argv[2] -> -anything (dans cet exemple -a, qui correspond à toutes les locales)
argv[3] -> NULL (dans cet exemple, cela permet de quitter la boucle)
Ok, c'est tout, je pense.