नमस्ते, मैं आपके लिए एक उदाहरण कोड लिखूंगा, इसे आपको समझाऊंगा और वास्तव में आशा करता हूं कि यह आपकी मदद करता है। फ़ंक्शन का प्रोटोटाइप कुछ इस तरह है:
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)। इसे चलाएं (उदाहरण के लिए उबंटू में) ।/program_name comman_name -anything- कुछ भी
उदाहरण :/a.out लोकेल-ए
यह उदाहरण मेरे संकलक द्वारा समर्थित सभी स्थानों को प्रिंट करता है जो कि जीसीसी है।
और जानकारी:
p एक पॉइंटर टू पॉइंटर टू चार (जैसे- argv is) p = & argv [2] है,-पॉइंटिंग स्ट्रिंग i-cmthing कैट-ऑलथिंग्स टू माय सेम्ड स्ट्रिंग i लूप को तब छोड़ देता है जब * p पॉइंट इस पर नजर डालता है: -> मैं इस प्रतीक का उपयोग अंकों को कहने के लिए करूँगा (न ही इसे सही तीर चयन ऑपरेटर के साथ भ्रमित करें)।
argv [0] -> program_name
argv [1] -> command_name (इस उदाहरण में कमांड का नाम लोकेल होगा, लेकिन इसके बजाय आप जो चेक करना चाहते हैं उसे दर्ज करें)
argv [2] -> -इसमें (इस उदाहरण में -a, जो सभी स्थानों पर है)
argv [3] -> NULL (इस उदाहरण में, यह लूप को छोड़ता है)
ठीक है, मुझे लगता है।