首页 > 系统相关 >Linux下system()与execl()的区别,popen()

Linux下system()与execl()的区别,popen()

时间:2024-03-01 16:00:48浏览次数:37  
标签:execl 函数 exec popen system 进程 返回值

System与exec的区别

1、system()和exec()都可以执行进程外的命令,system是在原进程上开辟了一个新的进程,但是exec是用新进程(命令)覆盖了原有的进程

2、system()和exec()都有能产生返回值,system的返回值并不影响原有进程,但是exec的返回值影响了原进程

 

popen()

system()函数用起来很容易出错,返回值太多,而且返回值很容易跟command的返回值混淆。这里推荐使用popen()函数替代,关于popen()函数的简单使用也可以通过上面的链接查看。

popen()函数较于system()函数的优势在于使用简单,popen()函数只返回两个值:
成功返回子进程的status,使用WIFEXITED相关宏就可以取得command的返回结果;
失败返回-1,我们可以使用perro()函数或strerror()函数得到有用的错误信息。

标签:execl,函数,exec,popen,system,进程,返回值
From: https://www.cnblogs.com/qiynet/p/18047290

相关文章