Halo saya akan menulis untuk Anda contoh kode, jelaskan kepada Anda dan sangat berharap ini membantu Anda. prototipe fungsi adalah sesuatu seperti:
sistem 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). buka terminal dan kompilasi program
2). jalankan (misalnya di Ubuntu) ./program_name comman_name -anything - anything
contoh: ./a.out lokal -a
contoh ini mencetak semua lokal yang didukung oleh kompiler saya yang gcc.
Info lebih lanjut:
p adalah poniter untuk penunjuk ke char (seperti argv adalah) p = & argv [2], menunjuk ke-apapun string i cat all -apapun ke string cmd saya saya keluar dari loop ketika * p menunjuk ke NULL lihat ini: -> saya akan menggunakan simbol ini untuk mengatakan poin ke (jangan bingung dengan operator pemilihan panah kanan).
argv [0] -> program_name
argv [1] -> command_name (dalam contoh ini nama perintah akan menjadi lokal, tetapi masukkan perintah yang ingin Anda periksa)
argv [2] ->-apapun (dalam contoh ini -a, yang semuanya lokal)
argv [3] -> NULL (dalam contoh ini, ini keluar dari loop)
ok itu saja, saya kira.