linux进程由什么函数创建
linux进程由什么函数创建详细介绍
在 Linux 系统里,创建进程通常会用到fork()和vfork()函数,之后往往配合exec()系列函数来执行新的程序。以下为你详细介绍:
1.
fork()函数
fork()是用来创建新进程的基础函数。调用fork()之后,会生成一个新的子进程,这个子进程是父进程的副本。fork()会返回两次:在父进程里返回子进程的进程 ID(PID);在子进程里返回 0;若创建失败则返回 -1。
下面是一个简单的示例代码:
python
main
pid_t pid fork
pid
进程创建失败
perror
pid
子进程
printf getpid
父进程
printf pid
2.
vfork()函数
vfork()也是用于创建新进程的函数,它和fork()的主要区别在于:vfork()创建的子进程会和父进程共享地址空间,并且在子进程调用exec()系列函数或者_exit()之前,父进程会被阻塞。
下面是一个简单的示例代码:
python
main
pid_t pid vfork
pid
进程创建失败
perror
pid
子进程
printf getpid
_exit
父进程
printf pid
3.
exec()系列函数
exec()系列函数通常和fork()或vfork()配合使用,其作用是在新进程中执行新的程序。exec()系列函数有多个变体,像execl()、execv()、execle()、execve()、execlp()和execvp()等。
下面是一个结合fork()和execlp()的示例代码:
python
main
pid_t pid fork
pid
进程创建失败
perror
pid
子进程
printf
execlp NULL
perror
_exit
父进程
printf
waitNULL
printf
这些函数在 Linux 系统编程里十分常用,能够帮助你创建和管理进程。