哪来的妖精 + 《软件工程(C编码实践篇)》MOOC课程作业http://mooc.study.163.com/course/USTC-1000002006
今天学习了如何用C语言调用Linux常用shell命令来模拟Linux终端。
C语言调用Linux 命令有三种方法system()、popen()、exec系列数call_exec1.c ,
其中system() 不用你自己去产生进程,它已经封装了,直接增加自己的命令;
exec 须要你自己 fork 进程,然后exec 自己的命令;
popen() 也能够实现运行你的命令,比system 开销小。
实验源代码:
#include <stdio.h> #include <stdlib.h> #include <string.h> int main() { char m_cmd[128]; while(1) { printf(" 请输入您要执行的命令: "); scanf("%s",m_cmd); if(0==strcmp(m_cmd,"help")) { printf(" 目前支持的命令有:help date route ifconfig ls netstat hostname exit "); } else if(0==strcmp(m_cmd,"date")) { system("date"); } else if(0==strcmp(m_cmd,"ifconfig")) { system("ifcongig"); } else if(0==strcmp(m_cmd,"route")) { system("route"); } else if(0==strcmp(m_cmd,"ls")) { system("ls"); } else if(0==strcmp(m_cmd,"netstat")) { system("netstat"); } else if(0==strcmp(m_cmd,"hostname")) { system("hostname"); } else if(0==strcmp(m_cmd,"exit")) { exit(0); } else { printf("Wrong cmd "); } } }
运行截图:
提交到GitHub: