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

最新文章

  1. 基于modelsim-SE的简单仿真流程—下
  2. 使用php+swoole对client数据实时更新(上)
  3. 《SSM框架搭建》二.mybatis3,spring4整合
  4. 【UWP】FlipView绑定ItemsSource,Selectedindex的问题
  5. ORACLE8.07客户端配置指南
  6. 谈谈JavaScript的2种主要继承方式
  7. ubuntu下tomcat启动巨慢分析
  8. Android_EditText
  9. 《A First Course in Probability》-chape6-随机变量的联合分布-基本概念
  10. javascript sort()与reverse()
  11. php开发客服系统(持久连接+轮询+反向ajax)
  12. Java容器的各种总结
  13. Mego(05) - Mego Tools使用教程
  14. Unity3D 代码加密保护工具
  15. ORA-01555快照过旧报错
  16. C#语句 分支语句 if --- else ---
  17. Nginx和PHP上传文件大小的限制
  18. SWD Connect/Transfer Source Code
  19. LinQ实战学习笔记(二) C#增强特性
  20. bzoj千题计划157:bzoj1220:[HNOI2002]跳蚤

热门文章

  1. (转)Arcgis for JS之对象捕捉
  2. NSURLProtectionSpace 证书认证的上下文
  3. Jenkins 定时 构建项目
  4. Java基础学习笔记三 正则表达式和校验、Date、DateFormat、Calendar
  5. mysql主主同步
  6. luoguP3979 遥远的国度 LCT+multiset维护子树信息
  7. hadoop fs 常用命令(1)
  8. eas之日志文件夹
  9. 【剑指Offer】57、二叉树的下一个结点
  10. PKU 1019 Number Sequence(模拟,思维)