Fosdccf.blog.chinaunix.net
sdccf
全部博文(19283)
Linux酷软(214)
tmp(0)
PostgreSQL(93)
Solaris(383)
AIX(173)
SCOUNIX(575)
DB2(1005)
Shell(386)
C/C++(1187)
MySQL(1750)
Sybase(465)
Oracle(3695)
Informix(548)
HP-UX(0)
IBM AIX(2)
Sun Solaris(0)
BSD(1)
Linux(8597)
SCO UNIX(23)
2011年(1)
2009年(125)
2008年(19094)
2007年(63)
clifford
linky521
曾德标
fengzhan
leon_yu
mcuflowe
yt200902
guanyuji
GY123456
snow888
carlos94
丸喵喵
sean229
cxunix
可怜的猪
cqxc413
xzzgege
wb123456
分类: LINUX
2008-04-18 12:59:27
Fork创建一个新的进程,新创建的进程是子进程,它是对父进程以后代码的一个复制,通常用来做多进程的服务器,也可以在子进程中运行独立的代码。 用getpid可以判断当前是子进程还是父进程。 看下面这个例子: #include #include #include int main() { pid_t pid; static int n = 0; printf("fork!\n"); switch (pid = fork()) { case -1: { /* ..pid.-1.fork.... */ /* ........ */ /* .......... */ perror("The fork failed!"); break; } case 0: { /* pid.0.... */ printf("[child]i am child!\n"); printf("[child]getpid=[%d]\n", getpid() ); printf("[child]pid=[%d]\n", pid ); break; } default: { /* pid..0.... */ printf("[parent]i am parent!\n" ); printf("[parent]getpid=[%d]\n",getpid() ); printf("[parent]pid=[%d]\n",pid ); break; } } printf("n=[%d]\n", n++); return 0; } 这个例子在linux下用gcc编译,运行结果如下: fork! [child]i am child! [child]getpid=[7422] [child]pid=[0] n=[0] [parent]i am parent! [parent]getpid=[7421] [parent]pid=[7422] n=[0]
Fork创建一个新的进程,新创建的进程是子进程,它是对父进程以后代码的一个复制,通常用来做多进程的服务器,也可以在子进程中运行独立的代码。
用getpid可以判断当前是子进程还是父进程。
看下面这个例子:
#include #include #include int main() { pid_t pid; static int n = 0; printf("fork!\n"); switch (pid = fork()) { case -1: { /* ..pid.-1.fork.... */ /* ........ */ /* .......... */ perror("The fork failed!"); break; } case 0: { /* pid.0.... */ printf("[child]i am child!\n"); printf("[child]getpid=[%d]\n", getpid() ); printf("[child]pid=[%d]\n", pid ); break; } default: { /* pid..0.... */ printf("[parent]i am parent!\n" ); printf("[parent]getpid=[%d]\n",getpid() ); printf("[parent]pid=[%d]\n",pid ); break; } } printf("n=[%d]\n", n++); return 0; }
这个例子在linux下用gcc编译,运行结果如下:
fork! [child]i am child! [child]getpid=[7422] [child]pid=[0] n=[0] [parent]i am parent! [parent]getpid=[7421] [parent]pid=[7422] n=[0]
上一篇:uClinux系统上运行自已编写的Hello程序
下一篇:解决Linux Vsftpd本地用户不能登录问题
登录 注册