当前位置: 技术问答>linux和unix
linux c入门问题,大家指教。system函数和exec函数的区别。
来源: 互联网 发布时间:2016-05-09
本文导语: system函数和exec函数的区别: 看了一下,由于以前没有用过,现在的问题是system函数我看是执行linux的命令的,exec好像也是,不知两者的区别? 还有system是不是只能执行linux下的系统命令? 我想在linux c程序中加入我...
system函数和exec函数的区别:
看了一下,由于以前没有用过,现在的问题是system函数我看是执行linux的命令的,exec好像也是,不知两者的区别?
还有system是不是只能执行linux下的系统命令?
我想在linux c程序中加入我自己的一个可执行的东西要怎么加进去,用什么函数?
看了一下,由于以前没有用过,现在的问题是system函数我看是执行linux的命令的,exec好像也是,不知两者的区别?
还有system是不是只能执行linux下的系统命令?
我想在linux c程序中加入我自己的一个可执行的东西要怎么加进去,用什么函数?
|
system 是在单独的进程中执行命令,完了还会回到你的程序中。
而exec函数是直接在你的进程中执行新的程序,新的程序会把你的程序覆盖,除非调用出错,否则你再也回不到exec后面的代码,就是说你的程序就变成了exec调用的那个程序了.
而exec函数是直接在你的进程中执行新的程序,新的程序会把你的程序覆盖,除非调用出错,否则你再也回不到exec后面的代码,就是说你的程序就变成了exec调用的那个程序了.
|
system() 不用你自己去产生进程,它已经封装了,直接加入自己的命令
exec 需要你自己 fork 进程,然后exec 自己的命令
popen() 也可以实现执行你的命令,比system 开销小
exec 需要你自己 fork 进程,然后exec 自己的命令
popen() 也可以实现执行你的命令,比system 开销小
|
system可以简单的看成fork + exec的结合。
调用exec函数,一般都先fork一个进程。
调用exec函数,一般都先fork一个进程。
|
system是通过fork, exec, waitpid实现的。