如何从可能包含空字符的输入流中读取未知数量的字节?

时间:2013-01-07 14:32:48

标签: c linux binarystream

在使用Linux中使用c的设备读取未知字节数(原始数据,可能包含NULL )时遇到一些问题。如何“只要它已准备好被读取”就可以读取设备? (希望一次不读取1个字节)。

1 个答案:

答案 0 :(得分:4)

如果您正在使用read,那么如果没有数据,您将阻止,或者如果有数据要读取则会成功。如果有数据要读,你会得到你想要的金额,或者如果没有更多的东西可以得到更少的金额。查看read的返回值以确定您拥有多少。您可以将其设置为非阻塞,但无论如何,检查读取返回值的方法都是正确的。

如果你更了解你将要拥有的数据突发类型,只需要处理你想要处理的任何大小的数据块,一次一个或多个字符。