【发布时间】:2016-01-31 14:17:58
【问题描述】:
我正在尝试将父级作为参数传递的字符串转换为大写的管道。我在这种情况下使用它。如何将 buf 转换为大写? toupper() 在这种情况下不起作用。
int fd[2];
char buf[BUF_SIZE];
ssize_t numRead;
//Child
if(close(fd[1]) == -1){
fprintf(stderr, "Error closing write end of child\n");
exit(4);
}
for(;;){
if((numRead = read(fd[0], buf, BUF_SIZE)) == -1){
fprintf(stderr, "Error reading from pipe (child)\n");
exit(5);
}
if(numRead == 0){
break;
}
if(write(STDOUT_FILENO, buf, numRead) != numRead){
fprintf(stderr, "Error writing to stdout (child)\n");
exit(6);
}
}
write(STDOUT_FILENO, "\n", 1);
if(close(fd[0]) == -1){
fprintf(stderr, "Error closing read end in child\n");
exit(7);
}
_exit(0);
【问题讨论】:
-
请解释一下,为什么
toupper()不起作用。 “不工作”是什么意思? “它不起作用”不是有用的错误描述。