我必须从用户那里获取输入,将其放入管道(在父进程中),然后我必须处理子进程中的字符串。所有大写字母必须为小写,所有小写字母必须为大写。我的问题是管道的输出。我的代码只会更改字符串中第一个字符的大小写,我不知道为什么。子管道正在读取所有字符(至少看起来是这样)。我希望有人能告诉我为什么这不会处理每个角色。
while (read(pfd[0], &buf, strlen(cmd)) > 0){
if(buf >= 'a' && buf <= 'z'){
buf = toupper(buf);
}
else{
buf = tolower(buf);
}
}
write(STDOUT_FILENO, &buf, strlen(cmd));