c语言system()介绍
2024-08-25 08:57:37
2013-09-0916:06:02
1. 头文件:
#include <stdlib.h>
2. 定义函数:
int system(const char * string);
3. 函数说明:
system()会调用fork()产生子进程,由子进程来调用
/bin/sh -c string
来执行参数string字符串所代表的命令,此命令执行完后随即返回原调用的进程。
在调用system()期间SIGCHLD信号会被暂时搁置,SIGINT和SIGQUIT信号则会被忽略。
4. 返回值:
4.1 如果 system()在调用/bin/sh 时失败则返回127, 其他失败原因返回-1。
4.2 若参数string 为空指针(NULL), 则返回非零值。
4.3 如果system()调用成功则最后会返回执行shell命令后的返回值,但是此返回值也有可能为system()调用/bin/sh 失败所返回的127,因此最好能再检查errno来确认执行成功。
附加说明:在编写具有SUID/SGID权限的程序时请勿使用system(),system()会继承环境变量,通过环境变量可能会造成系统安全的问题。
5. 范例:
#include <stdlib.h>
main()
{
system("ls -al /etc/passwd /etc/shadow");
}
执行:
-rw-r--r-- root root Sep : /etc/passwd
-r--------- root root Sep : /etc/shadow
最新文章
- 基于modelsim-SE的简单仿真流程—下
- 使用php+swoole对client数据实时更新(上)
- 《SSM框架搭建》二.mybatis3,spring4整合
- 【UWP】FlipView绑定ItemsSource,Selectedindex的问题
- ORACLE8.07客户端配置指南
- 谈谈JavaScript的2种主要继承方式
- ubuntu下tomcat启动巨慢分析
- Android_EditText
- 《A First Course in Probability》-chape6-随机变量的联合分布-基本概念
- javascript sort()与reverse()
- php开发客服系统(持久连接+轮询+反向ajax)
- Java容器的各种总结
- Mego(05) - Mego Tools使用教程
- Unity3D 代码加密保护工具
- ORA-01555快照过旧报错
- C#语句 分支语句 if --- else ---
- Nginx和PHP上传文件大小的限制
- SWD Connect/Transfer Source Code
- LinQ实战学习笔记(二) C#增强特性
- bzoj千题计划157:bzoj1220:[HNOI2002]跳蚤