软件工程实验2

哪来的妖精 + 《软件工程(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:

原文地址:https://www.cnblogs.com/raincute/p/7577638.html