UNIX环境高级编程 chat1 从标准输入中读取命令执行

来源:互联网 发布:linux打包文件夹 编辑:程序博客网 时间:2024/04/30 08:37
#include <sys/wait.h>
#include <stdio.h>
const int MAXLINE=16;
int main(void){
  char buf[MAXLINE];
  pid_t pid;
  int status;


  printf("%% ");
  while(fgets(buf,MAXLINE,stdin)!=NULL){
        if(buf[strlen(buf)-1]=='\n')
             buf[strlen(buf)-1]=0;


if((pid=fork())<0){
             printf("fork error!\n");
}else if(pid==0){
    execlp(buf,buf,(char*)0);
             printf("couldn't execute: %s",buf);
             exit(127);

        }

        if((pid==waitpid(pid,&status,0))<0){
    printf("waitpid error");
}
        printf("%% ");
  }
  exit(0);
}


gcc  execlp.c

./a.out 

程序运行,产生提示符:%,

输入 命令 ls等,就可以看到结果。

按CTRL+D退出。

0 0
原创粉丝点击