gpt4 book ai didi

c - 在 C 中读取整个标准输入直到 EOF

转载 作者:太空宇宙 更新时间:2023-11-04 08:47:34 24 4
gpt4 key购买 nike

我正在编写一个程序,它将为文件或来自标准输入的字符串生成哈希值。但是,fseek 和 ftell 不会在 stdin 上工作,所以我不能保留一个缓冲区,将 stdin 倒回开头,然后 slurp 整个流。那么有什么简单的方法可以做到这一点吗?或者我应该每次读取 n 个字符并将其发送到每个哈希的状态更新函数?

最佳答案

如果您认为stdin 始终是文本的,您可以使用getline(3) 从中读取整行。 .

如果你想处理任意输入(包括非文本stdin)你应该使用fread(3)在一些相当大的 block (例如 4K 或 16K 字节)上循环并考虑部分读取。该 block 可能包含空字节。您将更新循环内的状态。

你可以在中间进行部分读取,例如如果您在 Linux 上从管道读取数据(使用 popen(3) ....)...

关于c - 在 C 中读取整个标准输入直到 EOF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21080454/

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