Linux C popen()函数详解
Linux 详解 函数 popen
2023-09-14 08:57:26 时间
表头文件 |
#include<stdio.h> |
定义函数 |
FILE * popen( const char * command,const char * type); |
函数说明 |
popen()会调用fork()产生子进程,然后从子进程中调用/bin/sh -c来执行参数command的指令。参数type可使用“r”代表读取,“w”代表写入。依照此type值,popen()会建立管道连到子进程的标准输出设备或标准输入设备,然后返回一个文件指针。随后进程便可利用此文件指针来读取子进程的输出设备或是写入到子进程的标准输入设备中。此外,所有使用文件指针(FILE*)操作的函数也都可以使用,除了fclose()以外。
|
返回值 |
若成功则返回文件指针,否则返回NULL,错误原因存于errno中。 |
错误代码 |
EINVAL参数type不合法。 |
注意事项 |
在编写具SUID/SGID权限的程序时请尽量避免使用popen(),popen()会继承环境变量,通过环境变量可能会造成系统安全的问题。 |
范例 |
#include<stdio.h> main() { FILE *fp; char buffer[80]; fp = popen("cat /etc/passwd", "r"); fgets(buffer, sizeof(buffer), fp); printf("%s", buffer); pclose(fp); } |
执行 |
root :x:0 0: root: /root: /bin/bash |
参考:
相关文章
- 最炫民族风!体验国人新宠Linux Deepin
- Linux C 堆内存管理函数malloc()、calloc()、realloc()、free()详解
- Linux C 字符串函数 strlen()、strcat()、strncat()、strcmp()、strncmp()、strcpy()、strncpy() 详解
- Linux C fcntl()函数详解
- Linux 开机启动方式设置 inittab 详解,开机直接进入“命令行”模式
- [Linux]linux下取消用户名和密码直接登录
- oracle10g 手动创建数据详解(linux)下
- linux shell 脚本攻略学习5---find命令详解
- 【转载】Linux关机命令详解
- linux shell 脚本攻略学习19--sed命令详解
- linux shell 脚本攻略学习6-xargs详解
- Kali Linux安装go语言环境详解
- Linux shell脚本详解及实战(一)——shell简介、shell变量及脚本规范
- Linux VIM编辑器详解
- Linux目录结构详解
- linux基础——htop命令查看进程信息及其指标详解
- Linux centos查看cpu信息命令
- 【Linux 内核】调度器 ② ( sched_class 调度类结构体源码 | 源码路径 linux-5.6.18kernelschedsched.h )
- Linux TC显示/操作流量控制设置
- Linux内核Thermal框架详解十三、Thermal Governor(3)
- linux内核radeon gpu源码解析8—— radeon_driver_load_kms函数详解3
- linux内核radeon gpu源码解析6 —— radeon_driver_load_kms函数详解1
- linux top命令及结果详解 top -p 查看Linux程序运行进程
- Linux命令详解之basename
- Linux命令详解之tar命令
- 【Linux 命令】chroot
- VM之Linux:Linux的Ubuntu中,解决安装后屏幕太小的问题
- linux内核radeon gpu源码解析5 —— drm_get_pci_dev函数详解2
- Linux下CMake简明教程(七)对库进行链接
- Linux用户管理