gpt4 book ai didi

haskell - hGet 的语义

转载 作者:行者123 更新时间:2023-12-02 10:52:19 25 4
gpt4 key购买 nike

我正在寻找一个函数

foo :: Handle -> ByteString

这将为我提供缓冲区中的所有内容,如果缓冲区为空则阻塞,如果缓冲区关闭则返回“”。

我有一个可以调用的应用

Data.ByteString.Char8.hGet handle 1

一切都工作正常,但是多次调用系统调用有点浪费。不幸的是,如果我将其增加到 2,我的应用程序会间歇性挂起,这表明 hGet 会一直等到缓冲区已满(或至少大于 1)。

我错过了什么?

最佳答案

检查 hGetNonBlockinghGetSome 。前者永远不会阻塞,所以这听起来像是您正在寻找的。后者会阻塞,直到有一些数据可用,但它可以返回比请求的更短的 ByteString。

关于haskell - hGet 的语义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9189297/

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