当前位置: 技术问答>linux和unix
请问用fork()创建进程有分方式的嘛?
来源: 互联网 发布时间:2015-08-09
本文导语: 我刚刚学习。。。。 据说其中的资源拷贝有3种方式。。共享,直接拷贝和copy on write!! 能不能举几个例子来看看呢??多谢了。。。 | /************************************************************* *函...
我刚刚学习。。。。
据说其中的资源拷贝有3种方式。。共享,直接拷贝和copy on write!!
能不能举几个例子来看看呢??多谢了。。。
据说其中的资源拷贝有3种方式。。共享,直接拷贝和copy on write!!
能不能举几个例子来看看呢??多谢了。。。
|
/*************************************************************
*函数原型: int mkfifo(const char *pathname, mode_t mode);
*简介:创建一有名管道,并对其进行读写操作
*************************************************************/
#include
#include
main()
{
int testnum = 0;
switch( fork() )/*创建新进程*/
{
case -1: /*出错处理*/
perror("Error");
break;
case 0: /*子进程*/
testnum = 1; /*改变testnum变量*/
printf("I'am the son process and testnum is %d.n",testnum);
break;
default:
sleep(1);/*为了协调两个进程的执行顺序,让父进程先“睡”上一秒*/
printf("I'am the parent process and testnum is %d.n",testnum);
break;
}
}
}
}
运行结果: I'am the son proces and testnum is 1.
I'am the parent process and testnum is 0.
希望有帮助:)
*函数原型: int mkfifo(const char *pathname, mode_t mode);
*简介:创建一有名管道,并对其进行读写操作
*************************************************************/
#include
#include
main()
{
int testnum = 0;
switch( fork() )/*创建新进程*/
{
case -1: /*出错处理*/
perror("Error");
break;
case 0: /*子进程*/
testnum = 1; /*改变testnum变量*/
printf("I'am the son process and testnum is %d.n",testnum);
break;
default:
sleep(1);/*为了协调两个进程的执行顺序,让父进程先“睡”上一秒*/
printf("I'am the parent process and testnum is %d.n",testnum);
break;
}
}
}
}
运行结果: I'am the son proces and testnum is 1.
I'am the parent process and testnum is 0.
希望有帮助:)