日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

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

發布時間:2023/12/1 windows 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 操作系统上机作业--实现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(多进程)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。