c|操作系统上机作业--实现mysys(多进程)
- mysys.c: 实现函数mysys,用于执行一个系统命令,要求如下
- mysys的功能与系统函数system相同,要求用进程管理相关系统调用自己实现一遍
- 使用fork/exec/wait系统调用实现mysys
- 不能通过调用系统函数system实现mysys
测试程序
#include int main()
{
printf("--------------------------------------------------\n");
system("echo HELLO WORLD");
printf("--------------------------------------------------\n");
system("ls /");
printf("--------------------------------------------------\n");
return 0;
}
测试程序的输出结果
--------------------------------------------------
HELLO WORLD
--------------------------------------------------
bincorehomelibmntrootsnaptmpvmlinuz
bootdevinitrd.imglost+foundoptrunsrvusrvmlinuz.old
cdrometcinitrd.img.oldmediaprocsbinsysvar
--------------------------------------------------
实现思路:在
mysys
函数中创建一个新进程,调用execl函数执行命令 代码实现
#include
#include
#include
#include
#includevoid 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;
}
【c|操作系统上机作业--实现mysys(多进程)】运行结果
文章图片
欢迎留言交流。。。。
推荐阅读
- 操作系统|[译]从内部了解现代浏览器(1)
- 17|17 关山松 第二课作业#公众号项目# D20
- 【同心同舵】郑友贤第八季思维导图武林计划No.15《点评作业5》
- 特殊的家庭作业。
- 作业没有完成仍坚持要开家庭会议|作业没有完成仍坚持要开家庭会议 44
- 2019年《家庭中的正面管教》作业七
- --木木--|--木木-- 第二课作业#翼丰会(每日一淘6+1实战裂变被动引流# 6+1模式)
- 2018-04-16动画练习作业
- 超级行动力第二次作业-行动大于学习的秘密
- 第一周作业复盘