在linux c编程中,我们可以使用fork,vfork,clone三个系统调用来创建子进程。下面我们先分析下fork系统调用的实现原理。代码如下(kernel/fork.c): 1 #ifdef __ARCH_WANT_SYS_FORK 2 SYSCALL_DEFINE0(fork) 3 { 4 ...
分类:
其他好文 时间:
2014-08-05 13:37:50
阅读次数:
444
1、进程创建:fork函数族
fork()和vfork()函数的区别:
(1) fork ( ):子进程拷贝父进程的数据段,代码段
vfork( ):子进程与父进程共享数据段
(2) fork( )父子进程的执行次序不确定
vfork 保证子进程先运行,在调用exec 或exit 之前与父进程数据是共享的,在它调用...
分类:
其他好文 时间:
2014-07-10 20:04:04
阅读次数:
178
exec函数族fork/vfork/clone为什么vfork必须调用_exitclose函数只能使socket引用计数减一,计数为0的时候才会发送FIN,思考多进程共享同一socket的情况,shutdown(howto,SHUT_RD||SHUT_RDWR||SHUT_WR),close同时关闭...
在Linux中,进程的创建由系统调用fork和vfork完成。它们生成一个子进程并且子进程是父进程的一个复制品。Fork系统调用对应的kernel函数是sys_fork,此函数简单的调用kernel函数do_fork。一个简化版的do_fork执行如下:(1)alloc_pid()。给新的进程分配一...
分类:
系统相关 时间:
2014-06-02 19:04:43
阅读次数:
355