- #include "apue.h"
- #include <ctype.h>
- int main(void){
- int c;
- while((c = getchar()) != EOF) {
- if( isupper(c))
- c = tolower(c);
- if (putchar(c) == EOF)
- err_sys("fputs error");
- if ( c == '\n')
- fflush(stdout);
- }
- exit(0);
- }
- #include "apue.h"
- #include <sys/wait.h>
- int main(void){
- char line[MAXLINE];
- FILE * fpin;
- if ((fpin = popen("./c15-5","r")) == NULL)
- err_sys("popen error ");
- for( ; ;){
- fputs("prompt",stdout);
- fflush(stdout);
- if ( fgets(line,MAXLINE,fpin) == NULL) /* read from pipe */
- break;
- if (fputs(line,stdout) == EOF)
- err_sys("fputs error to pipe");
- }
- if (pclose(fpin) == -1)
- err_sys("pclose error");
- putchar('\n');
- exit(0);
- }
c15-5将标准输入转换后复制到标注输出
c15-6使用管道,读取shell程序的输出,并给用户提示,该程序不处理标准输入
同时shell程序从标准输入接受用户输入,
read
父进程----------------------------转换程序
\ prompt /
\ / 接受用户的标准输入
user
阅读(878) | 评论(0) | 转发(0) |