QIODeviceBase Class

QIODevice の基本クラスで、デバイスが開かれるモードを記述するフラグを提供します。詳細...

Header: #include <QIODevice>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core
Inherited By:

QDataStream, QDebug, QIODevice, and QTextStream

パブリック・タイプ

flags OpenMode
enum OpenModeFlag { NotOpen, ReadOnly, WriteOnly, ReadWrite, Append, …, ExistingOnly }

詳細説明

メンバー型ドキュメント

enum QIODeviceBase::OpenModeFlag
flags QIODeviceBase::OpenMode

この enum はQIODevice::open() と共に使用され、デバイスがオープンされるモードを記述します。また、QIODevice::openMode() によっても返されます。

定数説明
QIODeviceBase::NotOpen0x0000デバイスはオープンされていません。
QIODeviceBase::ReadOnly0x0001デバイスは読み込み可能です。
QIODeviceBase::WriteOnly0x0002デバイスは書き込み可能です。ファイル・システムのサブクラス(QFile など)では、 ReadOnly、Append、NewOnly と組み合わせない限り、このモードは Truncate を意味することに注意してください。
QIODeviceBase::ReadWriteReadOnly | WriteOnlyデバイスは読み書きのためにオープンされている。
QIODeviceBase::Append0x0004デバイスはアペンド・モードでオープンされ、すべてのデータがファイルの最後に書き込まれる。
QIODeviceBase::Truncate0x0008可能であれば、デバイスはオープンされる前に切り捨てられる。デバイスのそれ以前の内容はすべて失われる。
QIODeviceBase::Text0x0010読み込み時、行末のターミネーターは'˶n'に変換される。書き込み時、行末のターミネーターはローカルエンコーディングに変換される。
QIODeviceBase::Unbuffered0x0020デバイス内のバッファはバイパスされる。
QIODeviceBase::NewOnly0x0040オープンするファイルが既に存在する場合は失敗する。ファイルが存在しない場合のみ、ファイルを作成して開く。オペレーティング・システムから、ファイルを作成し開くのは自分だけであることが保証される。このモードはWriteOnlyを意味し、ReadWriteと組み合わせてもよいことに注意。このフラグは、現在のところQFile にのみ影響します。将来的には他のクラスもこのフラグを使用するかもしれませんが、それまではQFile 以外のクラスでこのフラグを使用すると、未定義の動作になる可能性があります。(Qt 5.11 以降)
QIODeviceBase::ExistingOnly0x0080オープンするファイルが存在しない場合に失敗します。このフラグは、ReadOnly、WriteOnly、または ReadWrite と一緒に指定する必要があります。ファイルが存在しない場合、ReadOnlyはすでに失敗しているため、ReadOnly単独でこのフラグを使用することは冗長であることに注意してください。このフラグは現在のところ、QFile 。将来的には他のクラスもこのフラグを使用するかもしれませんが、それまではQFile 以外のクラスでこのフラグを使用すると、未定義の動作になる可能性があります。(Qt 5.11 以降)

UnbufferedTruncate のような特定のフラグは、いくつかのサブクラスで使用しても意味がありません。これらの制限のいくつかは、サブクラスによって表現されるデバイスのタイプによって暗示されます。例えば、QTcpSocketUnbuffered モードをサポートしておらず、ネイティブ API の制限によりQFile は Windows 上でUnbuffered をサポートしていません。

OpenMode 型はQFlags<OpenModeFlag> の typedef です。これは、OpenModeFlag 値の OR の組み合わせを格納します。

本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。