首页 > 技术文章 > C程序执行cmd并获取返回值

pfeiliu 2020-06-04 21:48 原文

 

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(int argc,char *argv[])
{
    if (argc == 1)
    {
        fprintf(stderr, "Error - One parameter is missing\n");

    }else if(argc>2)
    {
        fprintf(stderr, "Error - Too many parameters\n");

    }else if(argc == 2)
    {
        printf("From commandline get parameter:argv[1]=%s\n",argv[1]);

        char cmd[200];
        //strcpy(cmd,"cat ");
        strcpy(cmd,argv[1]);
        //strcat(cmd," > /dev/efi_capsule_loader");
        printf("Local will execute command:%s\n",cmd);

        system(cmd);
    }
    return 0;
}
C:\Users\Administrator\Desktop\note\Lorrie>afl_test.exe
Error - One parameter is missing

C:\Users\Administrator\Desktop\note\Lorrie>afl_test.exe 1 2 3
Error - Too many parameters

C:\Users\Administrator\Desktop\note\Lorrie>afl_test.exe calc
From commandline get parameter:argv[1]=calc
Local will execute command:calc

看吧,我们打开了计算器

 

执行命令并获取返回值

#include <stdio.h>
int main ()
{
    char c[100];
    FILE *fp;
    fp=popen("systeminfo","r");

    while (fgets(c, sizeof(c), fp) != NULL )
    {
        printf("result ->>> %s",c);

    }
    pclose(fp); 
   return(0);
}
C:\Users\Administrator\Desktop\note\exer>a.exe
result ->>>
result ->>> 主机名:           C91RTFLY23EK9QV
result ->>> OS 名称:          Microsoft Windows 10 企业版 LTSC
result ->>> OS 版本:          10.0.17763 暂缺 Build 17763
result ->>> OS 制造商:        Microsoft Corporation
result ->>> OS 配置:          独立工作站
result ->>> OS 构建类型:      Multiprocessor Free
result ->>> 注册的所有人:     User
result ->>> 注册的组织:       China
result ->>> 产品 ID:          00425-00000-00002-AA474
result ->>> 初始安装日期:     2020/5/1, 12:09:13
result ->>> 系统启动时间:     2020/9/10, 18:04:41
result ->>> 系统制造商:       LENOVO
result ->>> 系统型号:         80TH
result ->>> 系统类型:         x64-based PC
result ->>> 处理器:           安装了 1 个处理器。
result ->>>                   [01]: Intel64 Family 6 Model 142 Stepping 9 GenuineIntel ~2511 Mhz
result ->>> BIOS 版本:        LENOVO 2TCN20WW, 2017/6/23
result ->>> Windows 目录:     C:\Windows
result ->>> 系统目录:         C:\Windows\system32
result ->>> 启动设备:         \Device\HarddiskVolume1
result ->>> 系统区域设置:     zh-cn;中文(中国)
result ->>> 输入法区域设置:   zh-cn;中文(中国)
result ->>> 时区:             (UTC+08:00) 北京,重庆,香港特别行政区,乌鲁木齐
result ->>> 物理内存总量:     7,805 MB
result ->>> 可用的物理内存:   3,880 MB
result ->>> 虚拟内存: 最大值: 8,573 MB
result ->>> 虚拟内存: 可用:   4,253 MB
result ->>> 虚拟内存: 使用中: 4,320 MB
result ->>> 页面文件位置:     C:\pagefile.sys
result ->>> 域:               WorkGroup
result ->>> 登录服务器:       \\C91RTFLY23EK9QV
result ->>> 修补程序:         安装了 7 个修补程序。
result ->>>                   [01]: KB4570720
result ->>>                   [02]: KB4465065
result ->>>                   [03]: KB4470788
result ->>>                   [04]: KB4512577
result ->>>                   [05]: KB4549947
result ->>>                   [06]: KB4561600
result ->>>                   [07]: KB4512578
result ->>> 网卡:             安装了 5 个 NIC。
result ->>>                   [01]: Realtek PCIe GBE Family Controller

 

推荐阅读