所以我要做的是重复键盘输入到标准输出。它必须使用读/写
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#define BUFFSIZE 1024
int main() {
char buffer[BUFFSIZE];
while (1)
if (read(0, buffer, sizeof(buffer)))
write(1, buffer, sizeof(buffer));
return 0;
}
如果我输入“hello”,它会创建一个带有一堆奇怪符号的新行。字母和另一个新行,它会说“你好”
答案 0 :(得分:4)
你应该保存read()
的返回值,并只写出read()
真正读过的数量。
你的代码也太混乱了,并没有多大意义,你的while
循环应该有一个条件,并且在这样的程序中有一个非常的,
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#define BUFFSIZE 1024
int
main(void)
{
char buffer[BUFFSIZE];
ssize_t length;
while ((length = read(STDIN_FILENO, buffer, sizeof(buffer))) > 0)
write(STDOUT_FILENO, buffer, length);
return 0;
}