exec 函数族和 system 的区别
exec 函数族和 system 函数都是用于执行外部命令的函数,但是它们之间有一些区别。
- exec 函数族:
- exec 函数族包括 execve、execl、execlp、execle、execv、execvp 等函数。
- exec 函数族会将当前进程替换为新的进程,新进程会从指定的可执行文件中开始执行,原来的进程的代码段、数据段等都会被新进程的内容替换。
- exec 函数族需要指定可执行文件的路径,并可以通过参数列表传递参数。
- exec 函数族不会创建新的进程,只是替换当前进程。
- system 函数:
- system 函数通过调用 shell 来执行指定的命令。
- system 函数会创建一个新的子进程来执行命令,原来的进程会等待子进程执行完毕后再继续执行。
- system 函数不需要指定可执行文件的路径,只需要指定命令字符串即可。
- system 函数会创建新的进程,执行完命令后再退出。
总的来说,exec 函数族用于直接执行新的可执行文件并替换当前进程,而 system 函数用于通过 shell 执行命令。
原文地址: https://www.cveoy.top/t/topic/irVo 著作权归作者所有。请勿转载和采集!