欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 运维知识 > windows >内容正文

windows

大连理工大学操作系统上机实验二

发布时间:2024/1/1 windows 41 豆豆
生活随笔 收集整理的这篇文章主要介绍了 大连理工大学操作系统上机实验二 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

编写一个多进程并发执行程序。父进程首先创建一个执行ls命令的子进程然后再创建一个执行ps命令的子进程,并控制 ps 命令总在 ls 命令之前执行。

#include<sys/types.h> #include<wait.h> #include<unistd.h> #include<signal.h> #include<stdio.h> #include<stdlib.h> typedef void(*sighandler_t)(int); void sigcat() {printf("No.%d Process continue\n",getpid()); } int main(int argc,char*argv[]) { int status_1,status_2;signal(SIGINT,(sighandler_t)sigcat);char *args1[]={"/bin/ls","-a",NULL};char *args2[]={"/bin/ps","-a",NULL};int pid1=fork();if(pid1<0){printf("Create Process fail\n");} if(pid1==0){printf("No.%d ls the child process starting\n",getpid());pause();printf("No.%d ls the child process waking\n",getpid());status_1=execve(args1[0],args1,NULL);exit(0);}else{printf("\nNo.%d Father Process starting\n",getpid());int pid2=fork();if(pid2>0){printf("No.%d ls pause\n",pid1);waitpid(pid2,&status_2,0);printf("No.%d ps over\n",pid2);printf("No.%d ls waking\n",pid1);kill(pid1,SIGINT);waitpid(pid1,&status_1,0);printf("No.%d ls over\n",pid1);printf("No.%d Father process over\n",getpid());exit(0); }if(pid2<0){printf("Process2 fails\n");}if(pid2==0){printf("No.%d ps starting\n ",getpid());status_2=execve(args2[0],args2,NULL); } }return 0; }

总结

以上是生活随笔为你收集整理的大连理工大学操作系统上机实验二的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。