QIODeviceBase Class

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

ヘッダー #include <QIODevice>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core
によって継承されます:

QDataStream,QDebug,QIODevice, および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 の組み合わせを格納します。

© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.