在unix中区分b/w exec()和system()

Nic*_*ick 2 c unix system exec

基于unix的系统中命令exec(const char*c)和system(const char*c)之间的区别是什么?

两者都可以从C程序调用来执行系统调用.这两个有没有区别?

Ben*_*igt 8

exec用指定的程序替换您的进程.您的程序已完成,无法继续运行.

spawn启动一个新进程(可能首先使用fork),并在程序继续执行时运行指定的程序.

system启动一个新进程(可能首先使用fork),并在程序等待时运行指定的程序.一旦孩子退出,你的课程就会继续.

  • `system`也在shell下运行命令,如`/ bin/sh -c"命令"`.如果命令包含有趣的字符,那么差别很大. (3认同)