Hola, te escribiré un código de ejemplo, te lo explicaré y realmente espero que esto te ayude. El prototipo de la función es algo así como:
sistema 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) abrir una terminal y compilar el programa
2) ejecútelo (por ejemplo en Ubuntu) ./program_name comman_name -anything - cualquier cosa
ejemplo: ./a.out locale -a
Este ejemplo imprime todas las configuraciones regionales compatibles con mi compilador que es gcc.
más información:
p es un indicador para apuntar a char (como argv is) p = & argv [2], apunta a -cualquier cadena que gato todo -cualquier cosa a mi cadena de cmd salgo del ciclo cuando * p apunta a NULL mira esto: -> Usaré este símbolo para decir puntos (no lo confunda con el operador de selección de flecha derecha).
argv [0] -> nombre_programa
argv [1] -> command_name (en este ejemplo, el nombre del comando será locale, pero ingrese el comando que desea verificar en su lugar)
argv [2] -> -anything (en este ejemplo -a, que son todas las configuraciones regionales)
argv [3] -> NULL (en este ejemplo, esto cierra el ciclo)
ok eso es todo, creo.