我有可能QBuffer :: open(OpenMode模式)会返回false吗?这是实施:
bool QBuffer::open(OpenMode flags)
{
Q_D(QBuffer);
if ((flags & Append) == Append)
flags |= WriteOnly;
setOpenMode(flags);
if (!(isReadable() || isWritable())) {
qWarning("QFile::open: File access not specified");
return false;
}
if ((flags & QIODevice::Truncate) == QIODevice::Truncate) {
d->buf->resize(o);
}
if ((flags & QIODevice::Append) == QIODevice::Append) // append to end of buffer
seek(d->buf->size());
else
seek(o);
return true;
}
bool QIODevice::isReadable() const
{
return (openMode() & ReadOnly) != 0;
}
bool QIODevice::isWritable() const
{
return (openMode() & WriteOnly) != 0;
}
我会说不。我正在进行这项研究,因此我的flexLint代码分析不会产生新的警告。
答案 0 :(得分:1)
如果你没有给它正确的标志,它可以返回false。例如,调用QBuffer::open(QIODevice::Text)
将失败,因为它没有指定读取或写入模式。除此之外,它总是会回归真实。