#include <stdio.h>
#include<apue.h> //注:自定义的头文件
int main (int argc,char **argv)
{
fork();
fork() && fork(); //短路运算
//fork();
pause();
return 0;
}
/*
int main (int argc,char **argv)
{
if(fork() == 0 ){
printf("a\n");
exit(0);
}else{
printf("b\n");
waitpid(-1,NULL,0); //回收子进程 ,如果子进程终止,而父进程并未进行回收,则就是僵尸进程,只有程序
} //运行结束之后,系统1号进程进行回收
printf("c\n");
return 0;
}
*/
/*
int main (int argc,char **argv)
{
int x = 1;
if (fork() == 0){
printf("child_printf: %d\n" , ++x); //输出2
}
printf("public_printf : %d\n", --x); //输出2次 0 和 1
return 0;
}
*/
/*
int main (int argc,char **argv)
{
fork();
fork();
printf("hello , world!\n"); //输出4次,它属于代码段,子进程拷贝父进程
return 0;
}
*/
/*
* 父子进程共享.text .data ,当更改数据时,子进程会拷贝父进程的数据
* 父子进程会有自己的空间(栈帧,)
int main (int argc,char **argv)
{
int x = 1;
if(fork() == 0 ){
++x;
printf("child_printf %d = ", x );
}else{
--x;
printf("parents %d =" , x);
}
return 0;
}
*/
#include<apue.h> //注:自定义的头文件
int main (int argc,char **argv)
{
fork();
fork() && fork(); //短路运算
//fork();
pause();
return 0;
}
/*
int main (int argc,char **argv)
{
if(fork() == 0 ){
printf("a\n");
exit(0);
}else{
printf("b\n");
waitpid(-1,NULL,0); //回收子进程 ,如果子进程终止,而父进程并未进行回收,则就是僵尸进程,只有程序
} //运行结束之后,系统1号进程进行回收
printf("c\n");
return 0;
}
*/
/*
int main (int argc,char **argv)
{
int x = 1;
if (fork() == 0){
printf("child_printf: %d\n" , ++x); //输出2
}
printf("public_printf : %d\n", --x); //输出2次 0 和 1
return 0;
}
*/
/*
int main (int argc,char **argv)
{
fork();
fork();
printf("hello , world!\n"); //输出4次,它属于代码段,子进程拷贝父进程
return 0;
}
*/
/*
* 父子进程共享.text .data ,当更改数据时,子进程会拷贝父进程的数据
* 父子进程会有自己的空间(栈帧,)
int main (int argc,char **argv)
{
int x = 1;
if(fork() == 0 ){
++x;
printf("child_printf %d = ", x );
}else{
--x;
printf("parents %d =" , x);
}
return 0;
}
*/