首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

linux上C编程笔记

2013-02-05 
linux下C编程笔记1、system()函数相关函数:fork,execve,waipid,popen表头文件:#includestdlib.h函数定义:

linux下C编程笔记

1、system()函数

相关函数:fork,execve,waipid,popen

表头文件:#include<stdlib.h>

函数定义:int system(const char *string)

返回值:如果fork()失败 返回-1:出现错误 如果exec()失败,表示不能执行Shell,返回值相当于Shell执行了exit(127)如果执行成功则返回子Shell的终止状态如果system()在调用/bin/sh时失败则返回127,其他失败原因返回-1。若参数string为空指针(NULL),则返回非零值>;。如果system()调用成功则最后会返回执行shell命令后的返回值,但是此返回值也有可能为 system()调用/bin/sh失败所返回的127,因此最好能再检查errno 来确认执行成功

 

system()会调用fork()产生子进程,由子进程来调用/bin/sh-c string来执行参数string字符串锁代表的命令,此命令执行后随即返回原调用的进程,在调用system()期间,SIGCHILD信号会被暂时搁置,SIGINT和SIGQUIT信号会被忽略。

 

system与exec的区别:

(1)system与exec都可执行进程外的命令,但是system是在原进程上新开辟一个进程,而exec是用新进程(命令)覆盖了原来的进程。

(2)二者都会产生返回值,system的返回值不影响原进程,exec的返回值影响原进程。

 

热点排行