小妹菜鸟问哥问题!
来源: 互联网 发布时间:2015-12-21
本文导语: 创建进程的那个系统调用 fuck 到底怎么用啊? | fork函数 fork 指令时最基本的程序调用,它的主要功能时在系统中建立一个新的进,也正是因为它的存在,UNIX系统的多任务(multitasking)功能...
创建进程的那个系统调用 fuck 到底怎么用啊?
|
fork函数
fork 指令时最基本的程序调用,它的主要功能时在系统中建立一个新的进,也正是因为它的存在,UNIX系统的多任务(multitasking)功能才得以实现。它的使用格式如下:
int pid ;
……
pid = fork() ;
如果运行成功,则系统会将0返回给pid(process id)。-般,都以pid的值区别这是子进程还是父进程。子进程的pid值都为0,而父进程的pid值则是一个大于0的值整数。如果调用失败,则系统会返回-1。
一个子进程建立成功后,这个子进程将与它的父进程运行相同的程序,也就是两者所使用的变量值完全相同,于是子进程和父进程将同步运行一个程序。(各个系统的子进程和父进程的运行先后顺序可能不一样。)
Code:
main()
{
int pid ;
printf("before call fork n") ;
pid = fork() ;
printf("after call fork pid=[%d] n",pid) ;
exit(0);
}
程序运行结果:
before call fork
after call fork pid=[0]
after call fork pid=[1319154]
fork 指令时最基本的程序调用,它的主要功能时在系统中建立一个新的进,也正是因为它的存在,UNIX系统的多任务(multitasking)功能才得以实现。它的使用格式如下:
int pid ;
……
pid = fork() ;
如果运行成功,则系统会将0返回给pid(process id)。-般,都以pid的值区别这是子进程还是父进程。子进程的pid值都为0,而父进程的pid值则是一个大于0的值整数。如果调用失败,则系统会返回-1。
一个子进程建立成功后,这个子进程将与它的父进程运行相同的程序,也就是两者所使用的变量值完全相同,于是子进程和父进程将同步运行一个程序。(各个系统的子进程和父进程的运行先后顺序可能不一样。)
Code:
main()
{
int pid ;
printf("before call fork n") ;
pid = fork() ;
printf("after call fork pid=[%d] n",pid) ;
exit(0);
}
程序运行结果:
before call fork
after call fork pid=[0]
after call fork pid=[1319154]