【回眸】技术干货——Linux内核(十一)system()函数与popen()函数
前言
system()函数的作用是执行一个shell脚本或者shell指令
popen与system()函数类似,不同点是popen()函数可以获取运行的shell脚本或者命令的输出结果
system()
函数参数
#include <stdlib.h> int system(const char *comand)
参考示例代码:
#include <stdio.h> #include <stdlib.h> #include <unistd.h> int main (void) { char ret[1024] ={0}; system ("ps"); printf ("ret = %s \n",ret); return 0; }
运行结果展示:
可以发现使用system()函数无法获取运行的结果。
popen()
函数原型:
#include <stdio.h> FILE popen (const char command,const char *mode )
参考示例代码:
#include <stdio.h> #include <stdlib.h> #include <unistd.h> int main (void) { char ret[1024] ={0}; FILE *fp; fp = popen("ps","r"); int nread = fread (ret,1,1024,fp); printf ("read ret %d byte,ret = %s \n",nread,ret); return 0; }
运行结果显示:
可以看到,当执行函数从system()更换为popen()时,popen()可以获取运行的输出结果.
后记碎碎念
Linux是一个系列,可以点击专栏查看同系列的其他文章,希望能帮到屏幕前的每一位应届生往届生,该博文最初发表在CSDN上。
本文分析了system()函数及popen()函数的异同之处,并且提供了两个案例对两个函数进行不同的理解和应用.
#校招求职有谈薪空间吗##找工作前vs找工作后的心路变化##26届秋招投递记录##央国企投递记录##租房前辈的忠告#应届生必学实用物联网技术 文章被收录于专栏
本专栏助应届生从物联网小白成长为企业争抢的技术人才,聚焦三大核心技术:传感器应用(环境监测)、嵌入式开发(STM32/Arduino)、通信协议(LoRa/NB-IoT/MQTT),配合10+实战项目(如智能温湿度监控系统)积累项目经验。覆盖智能硬件、工业物联网、智能家居领域岗位需求,解析企业招聘技术重点与面试题,帮电子、计算机、自动化等专业学生构建知识体系,提前锁定名企Offer!