2007年9月18日星期二

c程序中使用exec()和system()那个更好

c程序中使用exec()和system()那个更好 这两个函数具体在使用中那个更好
更可靠更安全呢

system()自己会fork(),exec()...
system跟exec功能都不同
当进程调用一种e x e c函数时,该进程完全由新程序代换,而新程序则从其m a i n函数开始执行。
因为调用e x e c并不创建新进程,所以前后的进程I D并未改变。e x e c只是用另一个新程序替换了当前进程的正文、数据、堆和栈段。

说句废话:具体问题具体分析。
能具体说说吗?
system跟exec功能都不同
当进程调用一种e x e c函数时,该进程完全由新程序代换,而新程序则从其m a i n函数开始执行。
因为调用e x e c并不创建新进程,所以前后的进程I D并未改变。e x e c只是用另一个新程序替换了当前进程的正文、数据、堆和栈段。

明白了
多谢啊

system posix2.0 定义ignore SIGINT SIGQUIT.
./glibc-2.3.5/sysdeps/posix/system.c

先查下再来问问题吧,呵呵
system太倚赖于shell.不过具体情况应具体对待.

没有评论: