国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(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ó)家法律
高安市| 蕲春县| 桐城市| 车致| 肃南| 武冈市| 仁寿县| 修武县| 吴江市| 进贤县| 金门县| 塔河县| 黎城县| 丰宁| 小金县| 博罗县| 宜昌市| 龙岩市| 富裕县| 鲜城| 宝兴县| 昌邑市| 克什克腾旗| 宁都县| 林芝县| 乌审旗| 祥云县| 休宁县| 息烽县| 应城市| 大竹县| 酒泉市| 濮阳县| 九龙坡区| 克山县| 瓮安县| 鹤岗市| 寿宁县| 旬邑县| 珲春市| 旺苍县|