操作系统

#include<stdio.h>

#include<stdlib.h>

#include<unistd.h>

#include<sys/types.h>

int main()

{ int  p1, p2;

      while((p1=fork())==-1);

     if(p1==0)

     printf("b ");

     else

      { while((p2=fork())==-1);

         if(p2==0)

         printf("c ");

         else

printf("a ");

}

return 0;

 

 

 

 

 

 

#include<stdio.h>

#include<stdlib.h>

#include<unistd.h>

#include<sys/types.h>

int main()

{ int  p1, p2;

      while((p1=fork())==-1);

     if(p1==0)

     printf("b pid=%d ppid=%d\n",getpid(),getppid());

     else

      { while((p2=fork())==-1);

         if(p2==0)

         printf("c pid=%d ppid=%d\n",getpid(),getppid());

         else

printf("a pid=%d",getpid());

}

return 0;

}

 

 

 

 

 

 

 

 

图一:

 #include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
#include<sys/types.h>
int main()
{
    int p1,p2,p3;
    while((p1=fork())== -1);
    if(p1==0)
    {
while((p2=fork())== -1);
if(p2==0)
{
    while((p3=fork())== -1);
if(p3==0)
  printf("d,pid=%d,ppid=%d\n",getpid(),getppid());
else
printf("c,pid=%d,ppid=%d\n",getpid(),getppid());
}
    else
        printf("b,pid=%d,ppid=%d\n",getpid(),getppid());
}
    else
     printf("a,pid=%d\n",getpid());
return (0); 
}

 

 

 

 

 

 

 

 

1) #include<unistd.h>

#include<stdlib.h>

#include<stdio.h>

main()

{ int child,p;

while((child=fork())==-1);

if(child==0) //子进程下

{ printf("In child: sleep for 10 seconds and then exit. \n");

sleep(10);

exit(0);

}

else //父进程下

{ do

{ p=waitpid(child,NULL,WNOHANG);

if(p==0)

{ printf("In father: The child process has not exited.\n");

sleep(1);

}

}while(p==0);

if(p==child)

{ printf("Get child exitcode then exit!\n");}

else

{ printf("Error occured!\n");}

}

exit(0);

}

 

 

#include<unistd.h>

#include<stdlib.h>

#include<stdio.h>

main()

{ int child,p;

while((child=fork())==-1);

if(child==0)

{ execl("/home/user/sy1/welcome.out","",NULL);

exit(0);

}

else

{ p=waitpid(child,NULL,0);     

if(p==child)

printf("Get child exitcode then exit!\n");

else

printf("Error occured!\n");

}

exit(0);

}

子进程要加载的程序welcome.c:

#include<stdio.h>

main()

{ printf("Hello! This is the loaded program.\n");}

posted @ 2023-03-26 21:57  宠柳娇花  阅读(25)  评论(0)    收藏  举报