QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 656|回复: 1

这个程序有什么错误?

[复制链接]
发表于 2003-5-21 18:18:34 | 显示全部楼层 |阅读模式
程序的目的是父进程从标准输入设备上读入字符(只能是小写字母).并显示到标准输出设备上.子进程则读入字符后转化为大写字母.再输出到标准输出设备上.
程序为:
#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();
        }
}
子进程和父进程的显示部分是一样的啊?为什么只能显示父进程的呢?
也就是说:只显示了小写字母.
发表于 2003-5-21 19:46:43 | 显示全部楼层
应该是c -= 32;
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-15 19:41 , Processed in 0.042265 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表