c - 从 stdin 读取直到 EOF

标签 c stdin unistd.h

在按下 CTRL+D 之前,我无法持续从标准输入读取内容。我必须使用 unistd.h 中的 read() 。我正在尝试模拟 cat 功能。有没有办法让我的缓冲区(我用 %s 打印)看起来整洁,没有 read(STDIN_FILENO, buf, 256) 中不必要的空格?

最佳答案

I am trying to simulate the cat function.

这是一个开始:

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. */
}

关于c - 从 stdin 读取直到 EOF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15511573/

相关文章:

c - 简单 C 字符串函数上的 Valgrind 错误

c - 剥离换行符非常棘手

c - C 的参数行选项解析

c - 不透明数据类型的静态分配

c - C语言中printf语句赋给变量时,它存储什么

javascript - 如何使用节点和 JavaScript 在按 Enter 之前从终端读取用户输入?

c - pread 和 pwrite 未定义?

c - 程序中的定时器太慢

c - 使用互斥锁按顺序同步线程

ruby - Ruby 中的 ARGV 有什么意义?