• 软件工程实验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:

  • 相关阅读:
    自动布局
    初探 iOS8 中的 Size Class
    iOS数据安全性问题
    iOS应用程序之间的跳转
    iOS 关于xml解析的问题
    iOS中的一些基础知识点
    关于iOS项目中使用ZBarSDK
    iOS中关于google地图的用法
    基于4.5Framework web程序、SQLSERVER数据库打包
    docker私有仓库搭建
  • 原文地址:https://www.cnblogs.com/raincute/p/7577638.html
Copyright © 2020-2023  润新知