读书人

fork概念选择题求详细解释解决办法

发布时间: 2013-01-09 09:38:16 作者: rapoo

fork概念选择题,求详细解释
下面是一个进程P(p)的一段伪代码,调用fork(),生成一个子进程p(c),有可能下面的exec()调用失败,codie -A,codie -B,codie -C都不会产生错误,也没有跳转命令..


pid = fork();
if(pid > 0)
codie -A;
else if(pid == 0)
exec("esegibile-B");
else
codie -C;

codice -D;


A 进程P(c)一定运行 CODICE -A部分代码,能运行codice -D部分代码;

B 进程P(c)一定运行 CODICE -A部分代码,不会运行codice -D部分代码;

C 进程P(p)一定运行 CODICE -A部分代码,能运行codice -D部分代码;

D 进程P(p)一定运行 CODICE -A部分代码,不会运行codice -D部分代码;

E 进程P(c)一定运行 CODICE -B部分代码,能运行codice -D部分代码;

F 进程P(c)一定运行 CODICE -B部分代码,不运行codice -D部分代码;

G 进程P(c)运行 CODICE -C部分代码,运行codice -D部分代码;

H 进程P(c)运行 CODICE -C部分代码,不运行codice -D部分代码;

I 进程P(p)一定运行 CODICE -B部分代码,能运行codice -D部分代码;

J 进程P(p)一定运行 CODICE -B部分代码,不运行codice -D部分代码;

K 进程P(p)能运行 CODICE -C部分代码,能运行codice -D部分代码;

L 进程P(p)运行 CODICE -C部分代码,不运行codice -D部分代码;

M 以上都不正确


-------------------------------------------
哪位高手帮忙解释说明,每个选项,多谢
[解决办法]
pid = fork();
if(pid > 0)
codie -A;
else if(pid == 0)
exec("esegibile-B");
else
codie -C;

codice -D;

假设fork成功 父进程 A+D 子进程 B+D
fork 失败 C+D
应该是这样吧
[解决办法]
这么多选项

子进程如果执行成功,可能只会执行exec("esegibile-B");
[解决办法]
能不能运行code D要看各个p,c在各自的代码区运行的怎么样如果异常或有类似于exit()函数就不能运行code
D了

[解决办法]
引用:
能不能运行code D要看各个p,c在各自的代码区运行的怎么样如果异常或有类似于exit()函数就不能运行code
D了
++,没注意那个exec~~

读书人网 >UNIXLINUX

热点推荐