system()函数与exec组函数
来源:互联网 发布:数据挖掘工作 编辑:程序博客网 时间:2024/06/17 02:48
在Linux下:
system()函数
功能:
执行一个系统命令(执行shell 命令)。
执行流程:
1.fork一个子进程;
2.在子进程中调用exec函数去执行command;
3.在父进程中调用wait去等待子进程结束。
返回值:
如果fork()失败 返回-1:出现错误
如果exec()失败,表示不能执行Shell,返回值相当于Shell执行了exit(127)
如果执行成功则返回子Shell的终止状态
如果system()在调用/bin/sh时失败则返回127,其他失败原因返回-1。若参数string为空指针(NULL),仅当命令处理程序可用时,返回非零值,可以通过这一特征判断在一个给定的操作系统上是否支持system函数(当system函数返回值为0时,表明system函数无效,在UNIX系统中, system函数总是可用的);。如果system()调用成功则最后会返回执行shell命令后的返回值,但是此返回值也有可能为 system()调用/bin/sh 失败所返回的127,因此最好能再检查errno 来确认执行成功。
与exec的区别
1、system()和exec()都可以执行进程外的命令,system是在原进程上开辟了一个新的进程,但是exec是用新进程(命令)覆盖了原有的进程(exec执行新进程,原有进程不再执行,即原有进程下面语句不会执行(未经测试))
2、system()和exec()都有能产生返回值,system的返回值并不影响原有进程,但是exec的返回值影响了原进程
0 0
- system()函数与exec组函数
- system函数 与 exec函数的区别
- system与exec系列函数对比
- popen system exec函数
- exec函数和system函数
- perl system,exec,readpipe 函数
- 7.php system(),exec() 函数
- Linux--exec函数族及system函数
- Linux--exec函数族及system函数
- Linux--exec函数族及system函数
- system函数和fork-exec机制
- 18. php system(),exec() ,passthru() 函数
- PHP exec 函数 及 system,exec,passthru区别用法详解
- PHP exec 函数 及 system,exec,passthru区别用法详解
- exec 函数组
- exec组函数详解
- vfork,进程树,exec函数族,system函数
- 【原创】《Linux高级程序设计》杨宗德著 - 进程管理与程序开发 - exec和system函数
- bzoj 1057 悬线法
- Maven管理依赖
- 简明网络I/O模型---同步异步阻塞非阻塞之惑
- WebStorm 常用功能的使用技巧分享
- Python常用标准库 --- urllib与urllib2
- system()函数与exec组函数
- drp项目--JDBC开发流程之Oracle数据库连接
- oracle 巡检脚本(自动化)
- TabLayout+ViewPage建立关联setupWithViewPager()出现的问题
- 五种Map集合简介
- scala_严格求值和惰性求值
- node异常处理
- 电脑使用技巧(一)
- DMA pools的使用