zoukankan      html  css  js  c++  java
  • 软件工程实验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:

  • 相关阅读:
    VS,VAX一些快捷键记录
    UnrealScript中的Cpptext{}段落
    UScript在VS下的阅读及调试
    Unreal中的网络同步机制
    UDK编辑器 49条小提示(转)
    VS正则表达式常用篇
    Legacy:Within
    Hadoop + HBase + Hive 完全分布式部署笔记
    Windows批处理调用逻辑备份
    CentOS 下修改/dev/shm 大小解决ORA00845
  • 原文地址:https://www.cnblogs.com/raincute/p/7577638.html
Copyright © 2011-2022 走看看