exec()给你更多控制权
当调用system()
函数时,操作系统必须解释命令字符串,然后决定运行哪些程序和怎样运行。问题就出在“操作系统需要解释字符串”上,你已经看到这有多么容易出错。要想解决这个问题就必须消除歧义,明确地告诉操作系统你想运行哪个程序,这就是exec()
函数的用处。
exec()函数替换当前进程
进程是存储器中运行的程序。如果在Windows中输入taskmgr
,或在Linux或Mac上面输入ps–ef
,就可以看到系统中运行的进程。操作系统用一个数字来标识进程,它叫进程标识符(process identifier,简称PID)。
exec()
函数通过运行其他程序来替换当前进程。你可以告诉exec()
函数要使用哪些命令行参数和环境变量。新程序启动后PID和老程序一样,就像两个程序接力跑,你的程序把进程交接给了新程序。