从stdin读到EOF

时间:2013-03-19 22:15:51

标签: c stdin unistd.h

我无法一直从stdin读取,直到按下CTRL + D.我必须使用unistd.h中的read()。我正在尝试模拟猫的功能。有没有办法让我的缓冲区(我用%s打印)看起来整洁而没有来自read(STDIN_FILENO, buf, 256)的不必要的空格?

1 个答案:

答案 0 :(得分:2)

  

我正在尝试模拟猫的功能。

这是一个开始:

ssize_t nread, nwrite;

while ((nread = read(STDIN_FILENO, buf, sizeof buf)) > 0) {
    nwrite = write(STDOUT_FILENO, buf, nread);
    /* Error handling and partial writes left as exercise. */
}