|
程序的目的是父进程从标准输入设备上读入字符(只能是小写字母).并显示到标准输出设备上.子进程则读入字符后转化为大写字母.再输出到标准输出设备上.
程序为:
#include<stdio.h>
#include<fcntl.h>
main()
{
char c;
int to_par[2],to_chi[2],get_id;
pipe(to_par);
pipe(to_chi);
get_id=fork();
c=getchar();
while(c!='x')
{
if(get_id==0)
{
close(0);
dup(to_chi[0]);
close(1);
dup(to_chi[1]);
close(to_chi[0]);
close(to_chi[1]);
close(to_par[1]);
close(to_par[0]);
if(c>='a'&&c<='z')
{
c+=32;
read(1,&c,1);
}
}
close(0);
dup(to_par[0]);
close(1);
dup(to_par[1]);
close(to_chi[1]);
close(to_chi[0]);
close(to_par[0]);
close(to_par[1]);
read(1,&c,1);
c=getchar();
}
}
子进程和父进程的显示部分是一样的啊?为什么只能显示父进程的呢?
也就是说:只显示了小写字母. |
|