欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

操作系统上机作业--实现mysys(多进程)

发布时间:2023/12/1 49 豆豆
生活随笔 收集整理的这篇文章主要介绍了 操作系统上机作业--实现mysys(多进程) 小编觉得挺不错的,现在分享给大家,帮大家做个参考.
  • mysys.c: 实现函数mysys,用于执行一个系统命令,要求如下
  • mysys的功能与系统函数system相同,要求用进程管理相关系统调用自己实现一遍
  • 使用fork/exec/wait系统调用实现mysys
  • 不能通过调用系统函数system实现mysys
    测试程序
#include <stdio.h>int main() {printf("--------------------------------------------------\n");system("echo HELLO WORLD");printf("--------------------------------------------------\n");system("ls /");printf("--------------------------------------------------\n");return 0; } 测试程序的输出结果 -------------------------------------------------- HELLO WORLD -------------------------------------------------- bin core home lib mnt root snap tmp vmlinuz boot dev initrd.img lost+found opt run srv usr vmlinuz.old cdrom etc initrd.img.old media proc sbin sys var --------------------------------------------------

实现思路:在mysys函数中创建一个新进程,调用execl函数执行命令
代码实现

#include<stdio.h> #include<sys/wait.h> #include<unistd.h> #include<sys/types.h> #include<stdlib.h>void mysys(char *str){pid_t pid;if(str==NULL){printf("Error:wrong shell string!\n");exit(0);}pid=fork();if(pid==0)execl("/bin/sh","sh","-c",str,NULL);wait(NULL); }int main(){printf("---------------------------------\n");mysys("echo a b c d");printf("---------------------------------\n");mysys("ls /");printf("---------------------------------\n");return 0; }

运行结果

欢迎留言交流。。。。

总结

以上是生活随笔为你收集整理的操作系统上机作业--实现mysys(多进程)的全部内容,希望文章能够帮你解决所遇到的问题。

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