Bonjour, je vais vous écrire 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:
système int (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). exécutez-le (par exemple dans Ubuntu) ./program_name nom_comman -anything - n'importe quoi
exemple: ./a.out locale -a
cet exemple affiche tous les paramètres régionaux pris en charge par mon compilateur qui est gcc.
Plus d'informations:
p est un poniter pour pointer vers char (comme argv est) p = & argv [2], pointe sur -toute chaîne i cat all -anythings sur ma chaîne cmd je quitte la boucle lorsque * p pointe sur NULL regardez ceci: -> j'utiliserai ce symbole pour dire des points (ne le confondez pas avec l'opérateur de sélection de la flèche droite).
argv [0] -> nom_programme
argv [1] -> nom_commande (dans cet exemple, le nom de la commande sera locale, mais entrez la commande que vous souhaitez vérifier à la place)
argv [2] -> -anything (dans cet exemple -a, qui est tous les locales)
argv [3] -> NULL (dans cet exemple, cela quitte la boucle)
ok c'est tout, je pense.