码迷,mamicode.com
首页 > 系统相关 > 详细

Linux基础——调用系统命令

时间:2014-10-07 16:27:23      阅读:220      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   io   os   ar   for   文件   

在这里,我们根据输入的相应命令,调用系统的命令。若不是系统的命令,自动清空该命令,否则,根据系统命令执行。

实现代码如下:

bubuko.com,布布扣
 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 #include <sys/types.h>
 4 #include <sys/wait.h>
 5 #include <unistd.h>
 6 #include <string.h>
 7 #define M ‘>‘
 8 void word_search(char *line,char *word[1024]);
 9 int main(int argc,char *argv[])
10 {
11     char line[1024];
12     char *word[1024];
13     while(memset(line,0,1024),printf("%c",M),fgets(line,1024,stdin))
14     {    
15         if(line[0]==\n)
16             continue;
17         line[strlen(line)-1]=\0;
18         memset(word,0,sizeof(word));
19         word_search(line,word);
20         if(word[0]==NULL)
21             continue;
22         if(fork() == 0)
23         {
24             execvp(word[0],word);
25             continue;
26         }
27         else
28             wait(NULL);
29     }
30     return 0;
31 }
32 void word_search(char *line,char *word[1024])
33 {
34     int cnt=0,bg=0,end;
35     while(line[bg] != \0)
36     {
37         while(line[bg] ==   && line[bg]!=\0)
38             bg++;
39         if(line[bg]==\0)
40             break;
41         end=bg;
42         while(line[end]!= && line[end]!=\0)
43             end++;
44         word[cnt]=(char *)calloc(1,(end-bg+1));
45         strncpy(word[cnt],line+bg,end-bg);
46         cnt++;
47         bg=end;
48     }
49     word[cnt]=NULL;
50 }
View Code

在代码中,execvp函数会从PATH 环境变量所指的目录中查找符合参数file 的文件名,

找到后便执行该文件,然后将第二个参数argv传给该欲执行的文件。

Linux基础——调用系统命令

标签:style   blog   http   color   io   os   ar   for   文件   

原文地址:http://www.cnblogs.com/gjn135120/p/4009278.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!