当前位置: 技术问答>linux和unix
敬请关注;关于系统进程的c 语言程序
来源: 互联网 发布时间:2014-12-31
本文导语: 该程序在Linux gcc下运行 fork( )在运行态下返回0,在成功创建情况下返回true,创建失败返回-1 #include main( ) {int p1,p2; while((p1=fork( ))==-1); /*创建不成功就一直创建*/ if(p1==0) putchar('b'); else {while((p2=fork( ))==-...
该程序在Linux gcc下运行
fork( )在运行态下返回0,在成功创建情况下返回true,创建失败返回-1
#include
main( )
{int p1,p2;
while((p1=fork( ))==-1); /*创建不成功就一直创建*/
if(p1==0)
putchar('b');
else
{while((p2=fork( ))==-1);
if(p2==0)
putchar('c');
else
putchar('a');
}
}
运行结果
bca
小弟真搞不懂,if…else…语句不是二者只执行其一吗,为什么它把所有的语句都执行完了。
fork( )在运行态下返回0,在成功创建情况下返回true,创建失败返回-1
#include
main( )
{int p1,p2;
while((p1=fork( ))==-1); /*创建不成功就一直创建*/
if(p1==0)
putchar('b');
else
{while((p2=fork( ))==-1);
if(p2==0)
putchar('c');
else
putchar('a');
}
}
运行结果
bca
小弟真搞不懂,if…else…语句不是二者只执行其一吗,为什么它把所有的语句都执行完了。
|
你的程序逻辑就是这样的,你肯定不知道fork做了什么,hehe
fork执行后,会自动复制当前的程序,并且从fork后的语句执行,如果是子进程fork返回0,父进程返回一个正数,你的
if(p1==0)
putchar('b');就是让第一次创建的子进程执行的
同理,当第二次fork后,if(p2==0) {
putchar('c');又第二个子进程执行
最后父进程执行 putchar('a');
fork执行后,会自动复制当前的程序,并且从fork后的语句执行,如果是子进程fork返回0,父进程返回一个正数,你的
if(p1==0)
putchar('b');就是让第一次创建的子进程执行的
同理,当第二次fork后,if(p2==0) {
putchar('c');又第二个子进程执行
最后父进程执行 putchar('a');
|
#include
main( )
{
int p1,p2;
while((p1=fork( ))==-1);
if(p1==0)
putchar('b');
else {
while((p2=fork( ))==-1);
if(p2==0) {
printf("The reture code is %d!n",p2);
putchar('c');
}
else {
printf("The process ID %d!n",p2);
putchar('a');
}
}
}
Results:
bThe reture code is 0!
cThe process ID 3856!
a
main( )
{
int p1,p2;
while((p1=fork( ))==-1);
if(p1==0)
putchar('b');
else {
while((p2=fork( ))==-1);
if(p2==0) {
printf("The reture code is %d!n",p2);
putchar('c');
}
else {
printf("The process ID %d!n",p2);
putchar('a');
}
}
}
Results:
bThe reture code is 0!
cThe process ID 3856!
a
|
man fork吧,很清楚地说明了的,如果失败就return -1;
如果成功就返回两次,第一次返回0表示fork成功,第二次返回子进程的PID,PID肯定大于0了。
man吧,如果不够详细就info吧。
如果成功就返回两次,第一次返回0表示fork成功,第二次返回子进程的PID,PID肯定大于0了。
man吧,如果不够详细就info吧。
|
fork是30年前unix系统上的里程碑式的调用,要好好看书和写代码理解。
fork,vfork,execl......
fork,vfork,execl......
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。