QIODevice::readLine(qint64 maxSize = 0) 如何工作?
How does QIODevice::readLine(qint64 maxSize = 0) works?
该方法的documentation说明:
QByteArray QIODevice::readLine(qint64 maxSize = 0)
This is an overloaded function.
Reads a line from the device, but no more than maxSize characters, and returns the result as a byte array.
但是,我注意到即使我们通过 maxSize = 0
,即。不要传递任何东西,readLine()
在行中发送几个字节。这是定义明确的行为吗?
此外,这是关于同一主题的十年前的一期:QIODevice::readLine(qint64 maxSize = 0) default argument performs poorly (should be documented)。这仍然相关吗?
Qt API 文档中没有提到,但是作为 maxSize
参数传入值 0 被视为具有“尽可能多的字节”的特殊含义。在 Qt 中的 qiodevice.cpp 源文件的第 1466 行可以看到该意图的证据:
if (maxSize == 0) maxSize = MaxByteArraySize - 1;
该方法的documentation说明:
QByteArray QIODevice::readLine(qint64 maxSize = 0)
This is an overloaded function.
Reads a line from the device, but no more than maxSize characters, and returns the result as a byte array.
但是,我注意到即使我们通过 maxSize = 0
,即。不要传递任何东西,readLine()
在行中发送几个字节。这是定义明确的行为吗?
此外,这是关于同一主题的十年前的一期:QIODevice::readLine(qint64 maxSize = 0) default argument performs poorly (should be documented)。这仍然相关吗?
Qt API 文档中没有提到,但是作为 maxSize
参数传入值 0 被视为具有“尽可能多的字节”的特殊含义。在 Qt 中的 qiodevice.cpp 源文件的第 1466 行可以看到该意图的证据:
if (maxSize == 0) maxSize = MaxByteArraySize - 1;