QIODeviceBase Class
QIODevice の基底クラスであり、デバイスが開かれるモードを説明するフラグを提供します。詳細...
| ヘッダー: | #include <QIODevice> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
| qmake: | QT += core |
| 継承元: |
パブリック型
| flags | OpenMode |
| enum | OpenModeFlag { NotOpen, ReadOnly, WriteOnly, ReadWrite, Append, …, ExistingOnly } |
保護された関数
メンバ型のドキュメント
enum QIODeviceBase::OpenModeFlag
flags QIODeviceBase::OpenMode
この列挙型は、QIODevice::open() とともに使用され、デバイスが開かれるモードを表します。また、QIODevice::openMode() によっても返されます。
| 定数 | 値 | 説明 |
|---|---|---|
QIODeviceBase::NotOpen | 0x0000 | デバイスは開かれていません。 |
QIODeviceBase::ReadOnly | 0x0001 | デバイスは読み取り用に開かれています。 |
QIODeviceBase::WriteOnly | 0x0002 | デバイスが書き込み用に開かれています。ファイルシステムのサブクラス(例:QFile )の場合、このモードは、ReadOnly、Append、または NewOnly と組み合わされない限り、Truncate を意味することに注意してください。 |
QIODeviceBase::ReadWrite | ReadOnly | WriteOnly | デバイスは読み取りおよび書き込み用に開かれています。 |
QIODeviceBase::Append | 0x0004 | デバイスは追加モードで開かれるため、すべてのデータはファイルの末尾に書き込まれます。 |
QIODeviceBase::Truncate | 0x0008 | 可能であれば、デバイスは開かれる前に切り捨てられます。デバイスのそれまでの内容はすべて失われます。 |
QIODeviceBase::Text | 0x0010 | 読み取り時には、行末の区切り文字は「\n 」に変換されます。書き込み時には、行末の区切り文字はローカルエンコーディングに変換されます。たとえば、Win32 では「\r\n 」となります。 |
QIODeviceBase::Unbuffered | 0x0020 | デバイス内のバッファはすべてバイパスされます。 |
QIODeviceBase::NewOnly | 0x0040 | 開こうとするファイルがすでに存在する場合、処理は失敗します。ファイルが存在しない場合にのみ、ファイルを作成して開きます。オペレーティングシステムにより、そのファイルを作成・開くのはあなただけであることが保証されます。 このモードは WriteOnly を暗黙的に含み、ReadWrite との組み合わせも許可されていることに注意してください。このフラグは現在、QFile にのみ影響します。将来的に他のクラスでもこのフラグが使用される可能性がありますが、それまではQFile 以外のクラスでこのフラグを使用すると、未定義の挙動を引き起こす可能性があります。(Qt 5.11 以降) |
QIODeviceBase::ExistingOnly | 0x0080 | 開こうとするファイルが存在しない場合は失敗します。このフラグは、ReadOnly、WriteOnly、またはReadWriteと併せて指定する必要があります。 なお、ファイルが存在しない場合、ReadOnly フラグだけで既に失敗するため、このフラグを ReadOnly 単独で使用するのは冗長です。このフラグは現在、QFile にのみ影響します。将来的に他のクラスでもこのフラグが使用される可能性がありますが、それまではQFile 以外のクラスでこのフラグを使用すると、未定義の挙動を引き起こす可能性があります。(Qt 5.11 以降) |
Unbuffered やTruncate などの特定のフラグは、一部のサブクラスで使用した場合、意味をなしません。 これらの制限の一部は、サブクラスが表すデバイスの種類によって暗黙的に生じます。その他の場合、制限は実装に起因するか、あるいは基盤となるプラットフォームによって課されることがあります。例えば、QTcpSocket はUnbuffered モードをサポートしておらず、ネイティブAPIの制限により、QFile はWindows上でUnbuffered をサポートできません。
OpenMode 型は、QFlags<OpenModeFlag> の typedef です。これは、OpenModeFlag 値の論理和(OR)を格納します。
メンバ関数のドキュメント
[constexpr noexcept protected default] QIODeviceBase::~QIODeviceBase()
QIODeviceBase のインスタンスを破棄します。
© 2026 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.