五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(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ó)家法律
玉溪市| 许昌县| 那曲县| 剑川县| 丰原市| 郧西县| 孟连| 辉南县| 普安县| 连江县| 清涧县| 渝中区| 胶州市| 昆明市| 金塔县| 尚义县| 石楼县| 安徽省| 内黄县| 稷山县| 庄浪县| 桂林市| 博湖县| 喀什市| 临夏县| 永川市| 开封县| 龙南县| 平武县| 合江县| 保山市| 济阳县| 汶川县| 葫芦岛市| 石阡县| 肥西县| 河池市| 盈江县| 四川省| 延津县| 哈巴河县|