Merhaba, sizin için bir örnek kod yazacağım, size açıklayacağım ve gerçekten size yardımcı olacağını umuyorum. işlevin prototipi şuna benzer:
int sistemi (sabit karakter * 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). bir terminal açın ve programı derleyin
2). çalıştırın (örneğin Ubuntu'da) ./program_name comman_name -her şey - her şey
örnek: ./a.out yerel ayarı -a
bu örnek derleyici tarafından desteklenen tüm yerel ayarları yazdırır.
Daha fazla bilgi:
p char için işaretçi için bir poniterdir (argv gibi) p = & argv [2], -dediğim dizeyi işaretler i cmd dizesine herşeyi kedi i * p NULL'a baktığında döngüden çıkarım: -> ben işaret etmek için bu sembolü kullanacağım (sağ ok seçim operatörü ile karıştırmayın).
argv [0] -> program_adı
argv [1] -> komut_adı (bu örnekte komut adı yerel olacaktır, ancak kontrol etmek istediğiniz komutu girin)
argv [2] -> -her şey (bu örnekte -a, tüm yerel ayarlardır)
argv [3] -> NULL (bu örnekte döngüden çıkar)
tamam bu bence.