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

  • 相关阅读:
    注解-案例
    注解(Annotation)
    适合新手看的超详细CentOS Linux 7 安装Tomcat8过程
    CentOS Linux 7 提示 lsof: 未找到命令
    解决MySql报错:1130
    Spring Boot 创建自定义的properties文件
    spring boot 使用Schedule创建轻量级定时任务
    4.Java数组模块
    3.IDEA开发工具
    2.java基础语法
  • 原文地址:https://www.cnblogs.com/raincute/p/7577638.html
Copyright © 2020-2023  润新知