DOS filesystem (QNX Neutrino)


driver ... dos dos_options ... &

Runs on:

QNX Neutrino


Where driver is one of the devb-* drivers, and dos_options is one or more of the following, separated by commas:

Use case-sensitive filename matching (forces long filenames). DOS/FAT is normally a case-preserving, case-insensitive filesystem.
Install a DOS codepage for mapping of locale 8.3 filenames. These names are used only when the corresponding (Unicode) long filename is absent (created pre-Win95) or has been disabled (using lfn=ignore) or for the volume label; specification of the appropriate locale will also allow portability of filenames created by fs-dos.so to older versions of DOS. Use the "chcp" native command on a DOS system to determine its active codepage. Supported values for mapping are:
mapping Description
cp437 DOS Latin US
cp850 DOS Latin-1
cp852 DOS Latin-2
cp866 DOS Cyrillic
cp1250 Windows Latin 2
cp1251 Windows Cyrillic
cp1252 Windows Latin 1
koi8r KOI8 Cyrillic
Set DOS/Windows compatibility mode. Certain versions of DOS implement minor individual peculiarities of the FAT on-disk format, although this is unlikely to affect any normal or typical filesystem client usage. The default is auto.
Specify how to handle the POSIX x-bit for executables:
  • all — make all files executable.
  • auto — make files ending in .exe, .bat, and .com executable.
  • none — make no files executable.
  • system — use the DOS "system" attribute to indicate which files are executable.

The default is auto.

Set pre-reading of the FAT. Scanning the FAT is required to return the count of free blocks. It also allows for improved write() performance by creating an in-memory summary of where free blocks might be located within the filesystem.

The value must be one of the following:

  • always — always read the entire FAT at mount time
  • lazy — read the FAT only when required (statvfs() query)
  • nonrmv — act as always for nonremovable media, and lazy for removable media

The default is nonrmv.

Set the handling of the FAT32/FSI record (this contains a count of free clusters plus a hint at the next free cluster):
  • ignore — ignore the record.
  • lazy — update the record only when unmounting.
  • update — update it whenever the FAT is modified.
  • use — update it and use it (normally the free block count is calculated at mounting).

The default is lazy.

Set the owning group of all files to group. The default is 0 (root).
Specify what to do with files that have the DOS "hidden" attribute:
  • dot — show hidden files in the filesystem with a dot (.) prefixed to their names. Files created with a leading dot have the DOS "hidden" attribute set.
  • ignore — ignore hidden; the files don't appear in the filesystem.
  • show — show hidden files in the filesystem as normal files.

The default is show.

Specify what to do with long filenames:
  • always — show long filenames. Always create both short and long filenames.
  • ignore — ignore long filenames. Only 8.3 filenames are displayed or created.
  • show — show long filenames. Long filenames are created if the filename is longer than 8.3 or if mixed case is used.

The default is show.

Specify how to handle Windows shortcut files:
  • ignore — place no special meaning on these files (the default).
  • all — turn all shortcut files into symbolic links pointing to their shortcut targets.
  • local — turn into symbolic links only those shortcut files that point to targets within this filesystem.
Enforce short (8.3) filenames. This option is valid only with lfn=ignore. By default, filename components beyond the 8.3 limit are silently ignored. For example, LONGFILENAME.TXT becomes LONGFILE.TXT.
Set POSIX check and emulation modes:
  • emulate — provide the following features beyond those provided by FAT:
    • Create the . and .. entries in the root directory.
    • Calculate directory size.
    • Calculate the number of links per directory, based on the subdirectories.
    • Ignore modification attempts that cannot be stored on disk or recreated by emulation, but don't raise errors.
  • none — disable POSIX checks and emulation:
    • There are no . and .. entries in the root directory.
    • The link count of every directory is always 2.
  • strict — set stricter POSIX checks. Provide the same features listed under emulate mode, but flag as errors modification attempts that cannot be stored on disk or recreated by emulation. For example, an error of EINVAL is flagged for attempts to do any of the following:
    • Set the user ID or group ID to something other than the default.
    • Remove an r permission.
    • Set an s permission.
    • Set a file modification or access time to pre-1980.

The default is emulate.

Specify how to display 8.3 filenames:
  • lower — always user lowercase (file.c).
  • upper — always use uppercase (FILE.C).
  • windows — emulate WindowsNT and use all lowercase or all uppercase according to the attributes of each filename (e.g., file.c or FILE.C).

The default is lower.

Specify what to do with files that have the DOS "system" attribute:
  • ignore — ignore system files; they don't appear in the filesystem.
  • show — show system files in the filesystem as normal files.

The default is show.

Set the owner of all files to user. The default is 0 (root).
Apply this permission mask to all files. The default is 0 (all permissions). The mask argument is a numeric or symbolic umask, similar to what the chmod utility uses.
Note: Because getsubopt() interprets commas as separators between suboptions, you can specify only one symbolic mode at a time (e.g., u=rw, not u=rw,go=r). To work around this, specify more than one umask option (e.g., umask=u=rw umask=go=r).
Use UTC time rather than local time for timestamps.
Specify what to do with the DOS volume name:
  • equals — display the volume label as a name-special file with an = prefixed to its name.
  • ignore — don't display the volume label.
  • show — display the volume label as a name-special file.

The default is equals.

In addition, you can specify any of the filesystem options described for io-blk.so.


The fs-dos.so shared object lets you mount DOS filesystems (FAT12, FAT16, and FAT32) under QNX Neutrino.

The fs-dos.so shared object is automatically loaded by the devb-* drivers when mounting a DOS FAT filesystem.

Note: This filesystem uses UTF-8 encoding for presentation of its filenames; attempts to specify a filename not using UTF-8 encoding will fail (with an error of EILSEQ).

Summary of filesystem commands

The following table shows the shared objects and related commands for the filesystems:

Partition type Filesystem Shared object Initialize with: Check with:
1, 4, or 6 DOS fs-dos.so mkdosfs chkdosfs
7 Windows NTa fs-nt.so N/A N/A
11, 12, or 14 FAT32 fs-dos.so mkdosfs chkdosfs
77, 78, or 79 QNX 4 fs-qnx4.so dinit chkfsys
131 Linux (Ext2) fs-ext2.so N/A N/A
175 Apple Macintosh HFS or HFS Plusa fs-mac.so N/A N/A
177, 178, or 179 Power-Safe fs-qnx6.so mkqnx6fs chkqnx6fsb
  Read-only compressed (RCFS) fs-rcfs.so mkrcfs N/A

a Read-only.

b Not usually necessary.

For more information, see the Filesystems chapter of the System Architecture guide.