最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

Linux--進(jìn)程(vfork)

2023-03-17 23:19 作者:圣母和正負(fù)喜歡沒辦法  | 我要投稿

一、概述

vfork()函數(shù):

不創(chuàng)建父進(jìn)程的副本,相反父子進(jìn)程共享數(shù)據(jù),CW技術(shù)不適用。

和fork()異同點(diǎn):

1> fork(): 父子進(jìn)程的執(zhí)行次序不確定

vfork():保證子進(jìn)程先運(yùn)行,在它調(diào)用 exec(進(jìn)程替換) 或 exit(退出進(jìn)程)之后父進(jìn)程才可

能被調(diào)度運(yùn)行。

2> fork(): 子進(jìn)程拷貝父進(jìn)程的地址空間,子進(jìn)程是父進(jìn)程的一個(gè)復(fù)制品。

?vfork():子進(jìn)程共享父進(jìn)程的地址空間(準(zhǔn)確來說,在調(diào)用 exec(進(jìn)程替換) 或 exit(退出

進(jìn)程) 之前與父進(jìn)程數(shù)據(jù)是共享的)。

共享進(jìn)程空間

例程1:子先父后

#include <stdio.h>

#include <stdlib.h>

#include <unistd.h>

?int main(int argc, char *argv[])

{

pid_t pid;

pid = vfork(); // 創(chuàng)建進(jìn)程

if(pid < 0){ // 出錯(cuò)

perror("vfork");

}

if(0 == pid){?

sleep(10);

printf("child\n");

_exit(0);?

}else if(pid > 0){?

printf("parent\n");

}

return 0;

}

執(zhí)行:gcc? Tvfork.c? -o Tvfork -Wall

? ? ? ? ? ./Tvfork

child

parent

上訴先輸出子進(jìn)程在輸出父進(jìn)程

例程2:共享

#include <stdio.h>

#include <stdlib.h>

#include <unistd.h>

int data?= 10;

int main(int argc, char *argv[])

{

pid_t pid;

int sum?= 20;

pid = vfork();

if(pid < 0){?

perror("vfork");

}

if(0 == pid){?

data = 100, sum?= 200;

printf("child:?data?= %d, sum?= %d\n", data, sum);

_exit(0);

}else if(pid > 0){?

printf("father: data?= %d, sum?= %d\n", data,?sum);

}

return 0;

}

輸出結(jié)果是一樣的。

例程3:子先,調(diào)用exec、exit后父進(jìn)程才調(diào)用,沒調(diào)用就死鎖。

#include <stdio.h>

#include <stdlib.h>

#include <unistd.h>

?int main(int argc, char *argv[])

{

pid_t pid;

pid = vfork();

if(pid < 0){?

perror("vfork");

}

if(0 == pid){?

printf("child\n");

sleep(1);

}else if(pid > 0){?

printf("parent\n");

sleep(1);

}

return 0;

}

沒有調(diào)用exec、exit會(huì)無限循環(huán)

具體見man手冊(cè)


Linux--進(jìn)程(vfork)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
日照市| 本溪| 松滋市| 桂阳县| 巴中市| 驻马店市| 新绛县| 湘乡市| 云阳县| 马鞍山市| 黑河市| 光泽县| 汉寿县| 裕民县| 鄂州市| 谷城县| 苏尼特左旗| 松原市| 宝清县| 雅安市| 宝应县| 天台县| 兴业县| 东平县| 察隅县| 广安市| 五莲县| 南江县| 资溪县| 宁强县| 出国| 明光市| 平和县| 巨野县| 东方市| 天气| 平山县| 鹤山市| 阿鲁科尔沁旗| 海伦市| 朔州市|