c - 使用 read(..) 从 stdin 读取并计算出缓冲区的大小

标签 c memory-management stdin

我想知道是否有人可以告诉我在使用 read(...) 从 stdin 读取输入时是否有动态分配缓冲区的方法 例如:

n = read(0, buffer, sizeof ?); 如何确保从 stdin(此处为 0)读取的字节数与在缓冲区 ?

最佳答案

你不能。您对固定大小的缓冲区执行 read 操作,例如:

char buf[BUF_SIZE];
int num_read = read(0, buf, BUF_SIZE);

然后判断是否有更多可用数据(通常通过检查num_read是否等于BUF_SIZE,但在某些情况下,您可能需要解释数据本身)。如果有,那么你再读一遍。等等。

由您来处理连接所有读取的数据。

关于c - 使用 read(..) 从 stdin 读取并计算出缓冲区的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7503399/

相关文章:

c - strnicmp在c中的实现

c - 有没有不需要linux内核的libc项目

python - 什么时候在 python 中收集对象垃圾?

c - __FILE__ 宏将在 C 中意外连接到前一个字符串

c - Linux-MIPS 系统调用保存的寄存器?

c - 操作系统开发中的内存管理

c中的字符数组问题

c - 函数无法正确从标准输入读取

c - 我的 C 函数从 stdin 读取并解析数据以存储在结构体的成员中。每次调用时如何读取输入的下一部分?

c - fgets 调用之间的空 stdin