Name Description Size Coverage
forkfd_qt.c 428 -
qabstractfileengine.cpp ! \class QAbstractFileEngineHandler \inmodule QtCore \reentrant \internal \brief The QAbstractFileEngineHandler class provides a way to register custom file engines with your application. \ingroup io \since 4.1 QAbstractFileEngineHandler is a factory for creating QAbstractFileEngine objects (file engines), which are used internally by QFile, QFileInfo, and QDir when working with files and directories. When you open a file, Qt chooses a suitable file engine by passing the file name from QFile or QDir through an internal list of registered file engine handlers. The first handler to recognize the file name is used to create the engine. Qt provides internal file engines for working with regular files and resources, but you can also register your own QAbstractFileEngine subclasses. To install an application-specific file engine, you subclass QAbstractFileEngineHandler and reimplement create(). When you instantiate the handler (e.g. by creating an instance on the stack or on the heap), it will automatically register with Qt. (The latest registered handler takes precedence over existing handlers.) For example: \snippet code/src_corelib_io_qabstractfileengine.cpp 0 When the handler is destroyed, it is automatically removed from Qt. The most common approach to registering a handler is to create an instance as part of the start-up phase of your application. It is also possible to limit the scope of the file engine handler to a particular area of interest (e.g. a special file dialog that needs a custom file engine). By creating the handler inside a local scope, you can precisely control the area in which your engine will be applied without disturbing file operations in other parts of your application. \sa QAbstractFileEngine, QAbstractFileEngine::create() 35807 -
qabstractfileengine_p.h 8079 -
qbuffer.cpp QBufferPrivate * 11505 -
qbuffer.h 1661 -
qdataurl.cpp ! \internal Decode a data: URL into its mimetype and payload. Returns a null string if the URL could not be decoded. 3136 -
qdataurl_p.h 761 -
qdebug.cpp Returns a human readable representation of the first \a maxSize characters in \a data. The size, \a len, is a 64-bit quantity to avoid truncation due to implicit conversions in callers. 50429 -
qdebug.h 30457 -
qdebug_p.h 3138 -
qdir.cpp 89238 -
qdir.h 9244 -
qdir_p.h 2792 -
qdirentryinfo_p.h lacks LWG 2857 resolution 11011 -
qdiriterator.cpp ! \since 4.3 \class QDirIterator \inmodule QtCore \ingroup io \brief The QDirIterator class provides an iterator for directory entrylists. You can use QDirIterator to navigate entries of a directory one at a time. It is similar to QDir::entryList() and QDir::entryInfoList(), but because it lists entries one at a time instead of all at once, it scales better and is more suitable for large directories. It also supports listing directory contents recursively, and following symbolic links. Unlike QDir::entryList(), QDirIterator does not support sorting. The QDirIterator constructor takes a QDir or a directory as argument. After construction, the iterator is located before the first directory entry. Here's how to iterate over all the entries sequentially: \snippet code/src_corelib_io_qdiriterator.cpp 0 Here's how to find and read all files filtered by name, recursively: \snippet code/src_corelib_io_qdiriterator.cpp 1 The next() and nextFileInfo() functions advance the iterator and return the path or the QFileInfo of the next directory entry. You can also call filePath() or fileInfo() to get the current file path or QFileInfo without first advancing the iterator. The fileName() function returns only the name of the file, similar to how QDir::entryList() works. Unlike Qt's container iterators, QDirIterator is uni-directional (i.e., you cannot iterate directories in reverse order) and does not allow random access. \note This class is deprecated and may be removed in a Qt release. Use QDirListing instead, see \l {Porting QDirIterator to QDirListing}. \sa QDir, QDir::entryList() 10449 -
qdiriterator.h 1468 -
qdirlisting.cpp ! \since 6.8 \class QDirListing \inmodule QtCore \ingroup io \brief The QDirListing class provides an STL-style iterator for directory entries. You can use QDirListing to navigate entries of a directory one at a time. It is similar to QDir::entryList() and QDir::entryInfoList(), but because it lists entries one at a time instead of all at once, it scales better and is more suitable for large directories. It also supports listing directory contents recursively, and following symbolic links. Unlike QDir::entryList(), QDirListing does not support sorting. The QDirListing constructor takes a directory path string as argument. Here's how to iterate over all entries recursively: \snippet code/src_corelib_io_qdirlisting.cpp 0 Here's how to find and read all regular files filtered by name, recursively: \snippet code/src_corelib_io_qdirlisting.cpp 1 Here's how to list only regular files, recursively: \snippet code/src_corelib_io_qdirlisting.cpp 5 Here's how to list only regular files and symbolic links to regular files, recursively: \snippet code/src_corelib_io_qdirlisting.cpp 6 //! [std-input-iterator-tag] QDirListing::const_iterator models C++20 \l{https://en.cppreference.com/w/cpp/iterator/input_iterator}{std::input_iterator}, that is, it is a move-only, forward-only, single-pass iterator, that doesn't allow random access. //! [std-input-iterator-tag] It can be used in ranged-for loops (or with C++20 range algorithms that don't require random access iterators). Dereferencing a valid iterator returns a QDirListing::DirEntry object. The (c)end() sentinel marks the end of the iteration. Dereferencing an iterator that is equal to \l{sentinel} is undefined behavior. QDirListing::DirEntry offers a subset of QFileInfo's API (for example, fileName(), filePath(), exists()). Internally, DirEntry only constructs a QFileInfo object if needed, that is, if the info hasn't been already fetched by other system functions. You can use DirEntry::fileInfo() to get a QFileInfo. For example: \snippet code/src_corelib_io_qdirlisting.cpp 3 \snippet code/src_corelib_io_qdirlisting.cpp 4 \sa QDir, QDir::entryList() 32703 -
qdirlisting.h 6389 -
qfile.cpp 44371 -
qfile.h 11156 -
qfile_p.h 1218 -
qfiledevice.cpp ! \enum QFileDevice::FileError This enum describes the errors that may be returned by the error() function. \value NoError No error occurred. \value ReadError An error occurred when reading from the file. \value WriteError An error occurred when writing to the file. \value FatalError A fatal error occurred. \value ResourceError Out of resources (e.g., too many open files, out of memory, etc.) \value OpenError The file could not be opened. \value AbortError The operation was aborted. \value TimeOutError A timeout occurred. \value UnspecifiedError An unspecified error occurred. \value RemoveError The file could not be removed. \value RenameError The file could not be renamed. \value PositionError The position in the file could not be changed. \value ResizeError The file could not be resized. \value PermissionsError The file could not be accessed. \value CopyError The file could not be copied. 23970 -
qfiledevice.h QT_NO_USE_NODISCARD_FILE_OPEN 4560 -
qfiledevice_p.h 3846 -
qfileinfo.cpp 62378 -
qfileinfo.h 6949 -
qfileinfo_p.h 5891 -
qfileselector.cpp 13310 -
qfileselector.h 825 -
qfileselector_p.h 1477 -
qfilesystemengine.cpp ! \class QFileSystemEngine \internal QFileSystemEngine offers OS-independent API for native system library methods, which work with files on physical disk drives; using such methods directly is faster than using a custom file engine (see QAbstractFileEngine and its sub-classes). Typically, you need a custom file engine when working with virtual file systems (for example QResource). Various Qt classes, for example QDir, QFile, and QFileInfo, can handle both types of files by detecting the file path scheme, for example, \c file:///, \c :/someresource (QResource). \sa QAbstractFileEngine, QAbstractFileEngineHandler, QFSFileEngine, QResourceFileEngine 8435 -
qfilesystemengine_mac.mm This implementation does not enable the "put back" option in Finder for the trashed object. The only way to get this is to use Finder automation, which would query the user for permission to access Finder using a modal, blocking dialog - which we definitely can't have in a console application. Using Finder would also play the trash sound, which we don't want either in such a core API; applications that want that can play the sound themselves. 1751 -
qfilesystemengine_ohos.cpp 2890 -
qfilesystemengine_p.h 9131 -
qfilesystemengine_unix.cpp 83615 -
qfilesystemengine_win.cpp Helper for GetTokenInformation that allocates chunk of memory to hold the requested information. The memory size is determined by doing a dummy call first. The returned memory should be freed by calling free(). 67883 -
qfilesystementry.cpp ! \internal Use this constructor when the path is supplied by user code, as it may contain a mix of '/' and the native separator. 10442 -
qfilesystementry_p.h 2966 -
qfilesystemiterator_p.h 1861 -
qfilesystemiterator_unix.cpp Native filesystem iterator, which uses ::opendir()/readdir()/dirent from the system libraries to iterate over the directory represented by \a entry. 3940 -
qfilesystemiterator_win.cpp 4765 -
qfilesystemmetadata_p.h 13842 -
qfilesystemwatcher.cpp 15851 -
qfilesystemwatcher.h 1098 -
qfilesystemwatcher_fsevents.mm 19577 -
qfilesystemwatcher_fsevents_p.h 3821 -
qfilesystemwatcher_inotify.cpp 12560 -
qfilesystemwatcher_inotify_p.h 1478 -
qfilesystemwatcher_kqueue.cpp 6536 -
qfilesystemwatcher_kqueue_p.h 1508 -
qfilesystemwatcher_p.h 2517 -
qfilesystemwatcher_polling.cpp erasing 3980 -
qfilesystemwatcher_polling_p.h 2946 -
qfilesystemwatcher_win.cpp 29748 -
qfilesystemwatcher_win_p.h 4129 -
qfsfileengine.cpp ! \class QFSFileEngine \inmodule QtCore \brief The QFSFileEngine class implements Qt's default file engine. \since 4.1 \internal This class is part of the file engine framework in Qt. If you only want to access files or directories, use QFile, QFileInfo or QDir instead. QFSFileEngine is the default file engine for accessing regular files. It is provided for convenience; by subclassing this class, you can alter its behavior slightly, without having to write a complete QAbstractFileEngine subclass. To install your custom file engine, you must also subclass QAbstractFileEngineHandler and create an instance of your handler. It can also be useful to create a QFSFileEngine object directly if you need to use the local file system inside QAbstractFileEngine::create(), in order to avoid recursion (as higher-level classes tend to call QAbstractFileEngine::create()). 27107 -
qfsfileengine_iterator.cpp 1524 -
qfsfileengine_iterator_p.h 1325 -
qfsfileengine_p.h 8056 -
qfsfileengine_unix.cpp ! \internal 17764 -
qfsfileengine_win.cpp ! \internal 26456 -
qiodevice.cpp ! \internal 76597 -
qiodevice.h 4173 -
qiodevice_p.h 7463 -
qiodevicebase.h 770 -
qiooperation.cpp 4618 -
qiooperation_p.h 4581 -
qiooperation_p_p.h 5012 -
qioring.cpp 8637 -
qioring_linux.cpp 28907 -
qioring_p.h This file defines an interface for the backend of QRandomAccessFile. The backends themselves are implemented in platform-specific files, such as ioring_linux.cpp, ioring_win.cpp, etc. And has a lower-level interface than the public interface will have, but the separation hopefully makes it easier to implement the ioring backends, test them, and tweak them without the higher-level interface needing to see changes, and to make it possible to tweak the higher-level interface without needing to touch the (somewhat similar) ioring backends. Most of the interface is just an enum QIORing::Operation + the QIORingRequest template class, which is specialized for each operation so it carries just the relevant data for that operation. And a small mechanism to store the request in a generic manner so they can be used in the implementation files at the cost of some overhead. There will be absolutely zero binary compatibility guarantees for this interface. 20139 -
qioring_win.cpp / struct IORingApiTable { #if QT_CONFIG(windows_ioring_runtime) # define DefineIORingFunction(Name) \ using Name##Fn = decltype(&::Name); \ Name##Fn Name = nullptr; #else // !windows_ioring_runtime: # define DefineIORingFunction(Name) \ using Name##Fn = decltype(&::Name); \ Name##Fn Name = &::Name; #endif // windows_ioring_runtime FOREACH_WIN_IORING_FUNCTION(DefineIORingFunction) #undef DefineIORingFunction }; static const IORingApiTable *getApiTable() { #if !QT_CONFIG(windows_ioring_runtime) Q_CONSTINIT static const IORingApiTable apiTable; // The table is directly initialized, so we always succeed: constexpr bool success = true; #else // windows_ioring_runtime static const IORingApiTable apiTable = []() { IORingApiTable apiTable; const HMODULE kernel32 = GetModuleHandleW(L"kernel32.dll"); if (Q_UNLIKELY(!kernel32)) // how would this happen return apiTable; # define ResolveFunction(Name) \ apiTable.Name = IORingApiTable::Name##Fn(QFunctionPointer(GetProcAddress(kernel32, #Name))); FOREACH_WIN_IORING_FUNCTION(ResolveFunction) # undef ResolveFunction return apiTable; }(); # define TEST_TABLE_OK(X) apiTable.X && /* chain 28143 -
qipaddress.cpp ! \internal \since 5.0 Parses one IPv6 address from \a begin to \a end and stores the representation in \a address. Returns null if everything was parsed correctly, or the pointer to the first bad character where parsing failed. If the parsing failed for a reason not related to a particular character, returns \a end. 9911 -
qipaddress_p.h 1044 -
qlockfile.cpp 23588 -
qlockfile.h 1835 -
qlockfile_p.h QLOCKFILE_P_H 2229 -
qlockfile_unix.cpp 16716 -
qlockfile_win.cpp 7456 -
qloggingcategory.cpp 23514 -
qloggingcategory.h 6466 -
qloggingcategory_p.h 1010 -
qloggingregistry.cpp ! \internal Constructs a logging rule with default values. 18213 -
qloggingregistry_p.h 5053 -
qnoncontiguousbytedevice.cpp ! \class QNonContiguousByteDevice \inmodule QtCore \brief A QNonContiguousByteDevice is a representation of a file, array or buffer that allows access with a read pointer. \since 4.6 The goal of this class is to have a data representation that allows us to avoid doing a memcpy as we have to do with QIODevice. \sa QNonContiguousByteDeviceFactory \internal 13819 -
qnoncontiguousbytedevice_p.h 4436 -
qntdll_p.h 2137 -
qprocess.cpp ! \class QProcessEnvironment \inmodule QtCore \brief The QProcessEnvironment class holds the environment variables that can be passed to a program. \ingroup io \ingroup misc \ingroup shared \reentrant \since 4.6 \compares equality A process's environment is composed of a set of key=value pairs known as environment variables. The QProcessEnvironment class wraps that concept and allows easy manipulation of those variables. It's meant to be used along with QProcess, to set the environment for child processes. It cannot be used to change the current process's environment. The environment of the calling process can be obtained using QProcessEnvironment::systemEnvironment(). On Unix systems, the variable names are case-sensitive. Note that the Unix environment allows both variable names and contents to contain arbitrary binary data (except for the NUL character). QProcessEnvironment will preserve such variables, but does not support manipulating variables whose names or values cannot be encoded by the current locale settings (see QString::toLocal8Bit). On Windows, the variable names are case-insensitive, but case-preserving. QProcessEnvironment behaves accordingly. \section1 Security Considerations Extending a process environment with new environment variables or adjusting \c{PATH} may expose the system to security vulnerabilities, for example via executing an untrusted binary. Therefore it is recommended to validate all user input before passing it to the process environment. \sa QProcess, QProcess::systemEnvironment(), QProcess::setProcessEnvironment() 93316 -
qprocess.h 9482 -
qprocess_darwin.mm 791 -
qprocess_p.h 10626 -
qprocess_unix.cpp 45672 -
qprocess_win.cpp 32292 -
qrandomaccessasyncfile.cpp ! \internal Attempts to open the file \a filePath with mode \a mode. \include qrandomaccessasyncfile.cpp returns-qiooperation 6742 -
qrandomaccessasyncfile_darwin.mm 30131 -
qrandomaccessasyncfile_p.h 2059 -
qrandomaccessasyncfile_p_p.h 12254 -
qrandomaccessasyncfile_qioring.cpp 18118 -
qrandomaccessasyncfile_threadpool.cpp 18543 -
qresource.cpp 56099 -
qresource.h 1890 -
qresource_iterator.cpp 1817 -
qresource_iterator_p.h 1250 -
qresource_p.h 1855 -
qsavefile.cpp 16738 -
qsavefile.h 2182 -
qsavefile_p.h 1351 -
qsettings.cpp QConfFile objects are explicitly shared within the application. This ensures that modification to the settings done through one QSettings object are immediately reflected in other setting objects of the same application. 116776 -
qsettings.h 5269 -
qsettings_mac.cpp On the Mac, it is more natural to use '.' as the key separator than '/'. Therefore, it makes sense to replace '/' with '.' in keys. Then we replace '.' with middle dots (which we can't show here) and middle dots with '/'. A key like "4.0/BrowserCommand" becomes "4<middot>0.BrowserCommand". 22289 -
qsettings_p.h position 8789 -
qsettings_wasm.cpp 15602 -
qsettings_win.cpp Keys are stored in QStrings. If the variable name starts with 'u', this is a "user" key, ie. "foo/bar/alpha/beta". If the variable name starts with 'r', this is a "registry" key, ie. "\foo\bar\alpha\beta". 25228 -
qstandardpaths.cpp ! \class QStandardPaths \inmodule QtCore \brief The QStandardPaths class provides methods for accessing standard paths. \since 5.0 This class contains functions to query standard locations on the local filesystem, for common tasks such as user-specific directories or system-wide configuration directories. 28941 -
qstandardpaths.h 2121 -
qstandardpaths_android.cpp The root of the external storage 9338 -
qstandardpaths_haiku.cpp Returns the generic standard path for given directory type. 5381 -
qstandardpaths_mac.mm 8537 -
qstandardpaths_ohos.cpp 3938 -
qstandardpaths_unix.cpp 15654 -
qstandardpaths_win.cpp 9840 -
qstorageinfo.cpp ! \class QStorageInfo \inmodule QtCore \since 5.4 \brief Provides information about currently mounted storage and drives. \ingroup io \ingroup shared \compares equality Allows retrieving information about the volume's space, its mount point, label, and filesystem name. You can create an instance of QStorageInfo by passing the path to the volume's mount point as a constructor parameter, or you can set it using the setPath() method. The static mountedVolumes() method can be used to get the list of all mounted filesystems. QStorageInfo always caches the retrieved information, but you can call refresh() to invalidate the cache. The following example retrieves the most common information about the root volume of the system, and prints information about it. \snippet code/src_corelib_io_qstorageinfo.cpp 2 12423 -
qstorageinfo.h 2336 -
qstorageinfo_linux.cpp mount read-only 18763 -
qstorageinfo_linux_p.h 1285 -
qstorageinfo_mac.cpp 4896 -
qstorageinfo_p.h This function implements a heuristic algorithm to determine whether a given mount should be reported to the user. Our objective is to list only entries that the end-user would find useful. We therefore ignore: - mounted in /dev, /proc, /sys: special mounts (this will catch /sys/fs/cgroup, /proc/sys/fs/binfmt_misc, /dev/pts, some of which are tmpfs on Linux) - mounted in /var/run or /var/lock: most likely pseudofs (on earlier systemd versions, /var/run was a bind-mount of /run, so everything would be unnecessarily duplicated) - filesystem type is "rootfs": artifact of the root-pivot on some Linux initrd - if the filesystem total size is zero, it's a pseudo-fs (not checked here). 4721 -
qstorageinfo_stub.cpp 537 -
qstorageinfo_unix.cpp 10610 -
qstorageinfo_win.cpp 9048 -
qtemporarydir.cpp QTemporaryDirPrivate class QTemporaryDirPrivate { public: QTemporaryDirPrivate(); ~QTemporaryDirPrivate(); void create(const QString &templateName); QString pathOrError; bool autoRemove; bool success; }; QTemporaryDirPrivate::QTemporaryDirPrivate() : autoRemove(true), success(false) { } QTemporaryDirPrivate::~QTemporaryDirPrivate() { } static QString defaultTemplateName() { QString baseName; #if defined(QT_BUILD_CORE_LIB) baseName = QCoreApplication::applicationName(); if (baseName.isEmpty()) #endif baseName = "qt_temp"_L1; return QDir::tempPath() + u'/' + baseName + "-XXXXXX"_L1; } void QTemporaryDirPrivate::create(const QString &templateName) { QTemporaryFileName tfn(templateName); constexpr auto perms = QFile::ReadOwner | QFile::WriteOwner | QFile::ExeOwner; for (int i = 0; i < 256; ++i) { tfn.generateNext(); QFileSystemEntry fileSystemEntry(tfn.path, QFileSystemEntry::FromNativePath()); if (QFileSystemEngine::mkdir(fileSystemEntry, perms)) { success = true; pathOrError = fileSystemEntry.filePath(); return; } # ifdef Q_OS_WIN const int exists = ERROR_ALREADY_EXISTS; int code = GetLastError(); # else const int exists = EEXIST; int code = errno; # endif if (code != exists) break; } pathOrError = qt_error_string(); success = false; } //************* QTemporaryDir /*! \class QTemporaryDir \inmodule QtCore \reentrant \brief The QTemporaryDir class creates a unique directory for temporary use. \ingroup io QTemporaryDir is used to create unique temporary directories safely. The directory itself is created by the constructor. The name of the temporary directory is guaranteed to be unique (i.e., you are guaranteed to not overwrite an existing directory), and the directory will subsequently be removed upon destruction of the QTemporaryDir object. The directory name is either auto-generated, or created based on a template, which is passed to QTemporaryDir's constructor. Example: \snippet code/src_corelib_io_qtemporarydir.cpp 0 It is very important to test that the temporary directory could be created, using isValid(). Do not use \l {QDir::exists()}{exists()}, since a default-constructed QDir represents the current directory, which exists. The path to the temporary directory can be found by calling path(). A temporary directory will have some static part of the name and some part that is calculated to be unique. The default path will be determined from QCoreApplication::applicationName() (otherwise \c qt_temp) and will be placed into the temporary path as returned by QDir::tempPath(). If you specify your own path, a relative path will not be placed in the temporary directory by default, but be relative to the current working directory. In all cases, a random string will be appended to the path in order to make it unique. \sa QDir::tempPath(), QDir, QTemporaryFile 9145 -
qtemporarydir.h 1298 -
qtemporaryfile.cpp ! \internal Generates a unique file path from the template \a templ and returns it. The path in \c templ.path is modified. 32553 -
qtemporaryfile.h 2982 -
qtemporaryfile_p.h QTEMPORARYFILE_P_H 3549 -
qurl.cpp 138299 -
qurl.h 14087 -
qurl_p.h 1771 -
qurlidna.cpp 30080 -
qurlquery.cpp 28479 -
qurlquery.h 3326 -
qurlrecode.cpp 26914 -
qwindowspipereader.cpp ! \class QWindowsPipeReader \inmodule QtCore \internal 15447 -
qwindowspipereader_p.h 2687 -
qwindowspipewriter.cpp ! Assigns the handle to this writer. The handle must be valid. Call this function if data was buffered before getting the handle. 9638 -
qwindowspipewriter_p.h 2359 -
wcharhelpers_win_p.h 740 -