gpt4 book ai didi

c - 从管道读取的字节数

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:21:55 24 4
gpt4 key购买 nike

在Linux中从管道读取时(C,fread/similar),当到达EOF时,如何知道读取了多少字节?如果我一次读取 block ,fread() 只返回读入的完整 block 数,我不能一次读取一个字节,因为那太慢了。当然,ftell() 返回 -1。

最佳答案

您可以通过将 size 参数设置为 1 并将 nmembers 设置为您喜欢的任何大小来使用 fread() 执行此操作。那么“成员”的数量就是字节数,你仍然可以有一个合适大小的缓冲区:

char     buf[8192];
size_t n;
n = fread(buf, 1, sizeof buf, f);

代替

char     buf[8192];
size_t n;
n = fread(buf, sizeof buf, 1, f);

关于c - 从管道读取的字节数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/860467/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com