Linux课程设计进程控制 下载本文

{ int id; char cmd[80]; char *cmd1; char *cmd2;

printf(\

printf(\ //将your-sid改为你的学号 printf(\ while(1) {

printf(\ //显示命令提示符 fgets(cmd, 80, stdin); //从键盘读入命令行

cmd[strlen(cmd)-1]=0; //将行尾字符置为字符串结束符0 printf(\ cmd1=strtok(cmd,\

cmd2=strtok(NULL,\ //将命令行分开成两部分 if ( strcmp(cmd, \ exit(0); //内部命令quit if ( strcmp(cmd, \ pwd(); //内部命令pwd

if ( strcmp(cmd, \ {sleep(5); printf(\内部命令pwd else { //外部命令 id=fork();

if (id<0) { printf(\ if ( id == 0 ) {

if(cmd2==NULL) execlp(cmd1, cmd1, NULL); else execlp(cmd1, cmd1, cmd2, NULL); if (execlp(cmd, cmd, NULL)<0) printf(\ exit(2); }

wait(NULL); } } }

void pwd() {

char dir[50]; getcwd(dir,50); printf(\}

参考文献

[1] 张玲. Linux操作系统 基础、原理与应用,北京:清华大学出版社,2014年2月。

[2] Neil Matthew, Richard Stones. Linux程序设计(第3版). 陈健等译. 北京:人民邮电出版社, 2007. [3] Mark G. Sobell. Linux命令、编辑器与Shell编程. 杨明军等译. 北京:清华大学出版社, 2007.