【回眸】技术干货——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!

全部评论

相关推荐

10-10 01:10
已编辑
深圳大学 测试开发
牛客26692713...:项目经历写那么多没啥用吧,挑两个最好的,其实浓缩成一页会比较好吧,背景、实习、项目,要是还有空间就再加个专业技能
投了多少份简历才上岸
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务