#include
#definebufsize10
intmain(void)
{
charch,dh,eh;
intp[2];//檔案描述符
pid_tchildpid;
if(pipe(p)==-1)//建立管道
perror("pipecall");
return-1;
}
if((childpid=fork())==-1)//建立子程序
perror("forkcall");
if(childpid!=0)//父程序
close(p[0]);//關閉讀檔案
do
ch=getchar();
write(p[1],&ch,1);//向管道寫
}while(ch!="x");//遇到"x"則結束
elseif(childpid==0)//子程序
close(p[1]);//關閉寫檔案
while(1)
read(p[0],&dh,1);//從管道讀
if(dh=="x")
printf("\n");
return0;
elseif(dh>="a"&&dh
eh=(char)((int)dh-32);//轉化成大寫輸出
printf("%c",eh);
else{
printf("%c",dh);
#include
#include
#include
#definebufsize10
intmain(void)
{
charch,dh,eh;
intp[2];//檔案描述符
pid_tchildpid;
if(pipe(p)==-1)//建立管道
{
perror("pipecall");
return-1;
}
if((childpid=fork())==-1)//建立子程序
{
perror("forkcall");
return-1;
}
if(childpid!=0)//父程序
{
close(p[0]);//關閉讀檔案
do
{
ch=getchar();
write(p[1],&ch,1);//向管道寫
}while(ch!="x");//遇到"x"則結束
}
elseif(childpid==0)//子程序
{
close(p[1]);//關閉寫檔案
while(1)
{
read(p[0],&dh,1);//從管道讀
if(dh=="x")
{
printf("\n");
return0;
}
elseif(dh>="a"&&dh
{
eh=(char)((int)dh-32);//轉化成大寫輸出
printf("%c",eh);
}
else{
printf("%c",dh);
}
}
}
}