首页 > 代码库 > Linux基础——调用系统命令
Linux基础——调用系统命令
在这里,我们根据输入的相应命令,调用系统的命令。若不是系统的命令,自动清空该命令,否则,根据系统命令执行。
实现代码如下:
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 else28 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 }
在代码中,execvp函数会从PATH 环境变量所指的目录中查找符合参数file 的文件名,
找到后便执行该文件,然后将第二个参数argv传给该欲执行的文件。
Linux基础——调用系统命令
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。