对于定义的数据类型,值太大

2024-09-26 18:08:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在从一个产生大约20 MB/s的特殊设备上读取数据

/dev/dvb/adapter0/dvr0

我需要阅读内容并复制到其他先进先出

^{pr2}$

运行了一整晚之后,我收到了以下错误:

[Errno 75]对于定义的数据类型,值太大

在操作系统读取行。在

从google看来,这与c库和32位指针有关,但我看不出这会如何影响我的python版本,即64位版本。在

有什么建议吗?在


Tags: dev版本内容定义错误googlemb读取数据
1条回答
网友
1楼 · 发布于 2024-09-26 18:08:24

我不知道你的jobm对象是什么,我假设它是你创建的,因为这是一个类似对象的唯一谷歌结果,所以如果我错了,请纠正我。在

你似乎在打开视频设备进行阅读,视频设备不断地产生视频数据,而不是阅读,你在闲置。您似乎没有将device_fd发送到jobm东西,因此它无法知道fd上是否有活动,因此它在您应该读取时处于休眠状态,这会造成缓冲区溢出。在

如果device_fd中有可用的数据,则需要始终从中读取数据。将fd发送到jobm,并使其利用poll或{}来查找其上的活动。在

编辑:对不起,我漏掉了你问题的一个细节。我所说的仍然适用,但不是那么直接——你需要同时观察你的输入和输出,而不仅仅是你的输出,因为我已经说过的原因。在

如果fifo不能处理输出,结果你错过了设备上的一个读数,你就会得到问题。您需要1)创建一个能容纳数百MB数据的缓冲区,以防管道延迟写入;2)丢弃数据包。如果部分数据丢失,DVB应用程序应该处理它。您也可以简单地捕捉并忽略异常,尽管它会导致轻微损坏和输出中丢失数据。在

相关问题 更多 >

    热门问题