Привіт, я напишу для вас приклад коду, поясню вам його і дуже сподіваюся, що це вам допоможе. прототип функції - це щось на зразок:
система 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). відкрити термінал і скласти програму
2). запустіть його (наприклад, в Ubuntu) ./program_name comman_name -anything - будь-що
приклад: ./a.out locale -a
цей приклад друкує всі локалі, підтримувані моїм компілятором, який є gcc.
більше інформації:
p - понітер на вказівник на char (як argv є) p = & argv [2], вказує на -всі рядки, які я котять всі, - все на моєму рядку cmd, я виходжу з циклу, коли * p вказує на NULL, дивіться на це: -> Я буду використовувати цей символ, щоб сказати точки (не плутати його з оператором вибору стрілки праворуч).
argv [0] -> ім'я програми
argv [1] -> command_name (у цьому прикладі ім'я команди буде локальним, але введіть команду, яку ви хочете перевірити)
argv [2] -> -що (у цьому прикладі -a, що є всіма локалями)
argv [3] -> NULL (у цьому прикладі це завершення циклу)
гаразд це, я думаю.