在代码中获得linux shell命令执行结果的方法
1.MobaXterm个人版升级专业版2.VS studio上查看标准cout输出3.MQTT broker部署与测试4.局部变量的引用传递的风险5.cmake交叉编译6.“编码器UVW故障或内部故障”解决方法7.康威生命游戏8.C++标准库joinable和join的用法9.上传代码到新的远程仓库的方法10.Ubuntu查看包信息命令11.段错误的形成原因12.C++陷阱—指定的返回类型的函数实际没有返回时会发生什么13.python sklearn包的安装14.C++编译器对溢出的默认处理15.安装nginx时报错解决(configure error: the HTTP gzip module requires the zlib library)16.C++观察者模式的实现17.C++陷阱 — C++ auto变量类型推导18.浅谈数字证书19.C++之#和##符号的用法20.常用快排算法实现21.linux C++程序测试命令的一种实现22.几种常用数据结构的C语言实现23.umount命令提示busy无法正常卸载的解决24.关于C++作用域符的一种用法25.二维字符串数组的传参时与指针互转时的问题26.C语言月份字符转月份数值实现27.C语言实现split函数
28.在代码中获得linux shell命令执行结果的方法
29.CMake通过外部传参执行不同逻辑的2种方案30.模板函数使用类型推导时的bug31.Qt程序加载Qt platform plugin 'xcb' 出错问题解决32.cmake 之make pack报错解决1.使用``
符号
``
符号,及键盘左上角的反引号,类似markdown的内嵌代码,可以直接获得命令的执行结果作为字符串。
char buf[100];
sprintf(buf, "echo \" `date` : %d\" >> ~/test_data.txt" ,123);
system(buf);
2.使用管道
#define CMD_RESULT_BUF_SIZE 1024
int ExecuteCMD_C(const char* cmd, char* result_)
{
char buf_temp[CMD_RESULT_BUF_SIZE] = {0};
FILE *ptr = NULL;
int iRet = -1;
//popen: 开启子进程,建立管道,并运行指令,'r':从子进程获取结果,'w':向子进程写数据
if((ptr = popen(cmd, "r")) != NULL) //popen
{
if(fgets(buf_temp, sizeof(buf_temp), ptr) != NULL)
{
strcpy(result_, buf_temp);
}
pclose(ptr);
ptr = NULL;
iRet = 0; // 处理成功
}
else
{
Rotating_Error("popen %s error\n", cmd);
iRet = -1; // 处理失败
}
return iRet;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具