编一个UNIX平台上的C程序。父进程创建一个子进程后,显示子进程标识数并等待子进程终止,父进程在子进程终止后显示子进程的返回状态。子进程通过映像改换,执行命令,将当前目录中core文件和以.bak结尾的文件全部删除。如映像改换失败,子进程返回状态值为2。

admin2016-05-14  14

问题 编一个UNIX平台上的C程序。父进程创建一个子进程后,显示子进程标识数并等待子进程终止,父进程在子进程终止后显示子进程的返回状态。子进程通过映像改换,执行命令,将当前目录中core文件和以.bak结尾的文件全部删除。如映像改换失败,子进程返回状态值为2。

选项

答案在程序清单14-1的映像改换语句行中,由于要执行的命令参数中含有Shell元字符,就要使exec通过标准Shen来执行,其中参数-c指明要把下一个参数按整个命令行看待。 程序清单14-1:fork.c #include<stdi0.h> #include<stlib.h> #include<unistd.h> main() { int pid,status=0; if(pid=fork()){ printf("Child process Id=%d\n",pid); wait(&status); printf("Status=%d\n",status); }else{ execl("/bin/sh","sh","-c","/bin/rm core*.bak",(char*)0); printf("图像改换失败!\n"); exit(2); } }。

解析
转载请注明原文地址:https://kaotiyun.com/show/y7Nx777K
本试题收录于: 操作系统题库理工类分类
0

最新回复(0)