首页 > 学院 > 开发设计 > 正文

system()函数与exec组函数

2019-11-06 08:12:34
字体:
来源:转载
供稿:网友

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的返回值影响了原进程


上一篇:Maven管理依赖

下一篇:1570.A C

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表