现在的位置: 首页 > 综合 > 正文

创建进程fork

2012年10月07日 ⁄ 综合 ⁄ 共 546字 ⁄ 字号 评论关闭
名称: fork
作用: 创建进程
文件: #include <unistd.h>
定义: pid_t fork(void);

说明: fork()会产生一个新的子进程,其子进程会复制父进程的数据与堆栈空间,并继承 父进程的用户代码,组代码,环境变量、已打开的文件代码、工作目录和资源限制等。Linux 使用copy-on-write(COW)技术,只有当其中一进程试图修改欲复制的空间时才会做真正的复制动作,由于这些继承的信息是复制而来,并非指相 同的内存空间,因此子进程对这些变量的修改和父进程并不会同步。此外,子进程不会继承父进程的文件锁定和未处理的信号。注意,Linux不保证子进程会比 父进程先执行或晚执行,因此编写程序时要留意死锁或竞争条件的发生.

返回: 如果fork()成功则在父进程会返回新建立的子进程代码(PID),而在新建立的子进程中则返回0。如果fork 失败则直接返回-1,失败原因存于errno中.

错误: EAGAIN 内存不足。ENOMEM 内存不足,无法配置核心所需的数据结构空间.

代码:
pid_t pid;
pid = fork()
if (pid == 0)
{
   
/* Child Process */
}
else if (pid > 0)
{
    /* Parent Process */
}
else
{
    /* Fork Error */
}

抱歉!评论已关闭.