C程序执行cmd并获取返回值
#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