Mount a filesystem
Synopsis:
#include <sys/mount.h>
int mount( const char* spec,
const char* dir,
int flags,
const char* type,
const void* data,
int datalen );
Arguments:
- spec
- A null-terminated string describing a special device
(e.g., /dev/hd0t177), or NULL if there's no special device.
- dir
- A null-terminated string that names the directory that you want to mount
(e.g., /mnt/home).
- flags
- Flags that are passed to the driver:
- _MFLAG_OCB — ignore the special device string, and contact all servers.
- _MOUNT_READONLY — mark the filesystem mountpoint as read-only.
- _MOUNT_NOEXEC — don't allow executables to load.
- _MOUNT_NOSUID — don't honor setuid bits on the filesystem.
- _MOUNT_NOCREAT — don't allow file creation on the filesystem.
- _MOUNT_OFF32 — limit off_t to 32 bits.
- _MOUNT_NOATIME — disable logging of file access times.
- _MOUNT_BEFORE — call
resmgr_attach()
with _RESMGR_FLAG_BEFORE.
- _MOUNT_AFTER — call resmgr_attach()
with _RESMGR_FLAG_AFTER.
- _MOUNT_OPAQUE — call resmgr_attach()
with _RESMGR_FLAG_OPAQUE.
- _MOUNT_UNMOUNT — unmount this path.
- _MOUNT_REMOUNT — this path is already mounted; perform an update.
- _MOUNT_FORCE — force an unmount or a remount change.
- _MOUNT_ENUMERATE — autodetect on this device.
- type
- A null-terminated string with the filesystem type
(e.g., nfs, cifs, qnx6,
network).
- data
- A pointer to additional data to be sent to the manager.
If datalen is <0, the data points to a null-terminated string.
- datalen
- The length of the data, in bytes, that's being sent to the server,
or <0 if the data is a null-terminated string.
Library:
libc
Use the -l c option to
qcc
to link against this library.
This library is usually included automatically.
Description:
The mount() function sends a request to servers to mount the
services provided by spec
and type at dir.
Note:
Updating the mount resets the other mount flags to their default values.
To determine which flags are currently set, use the
DCMD_ALL_GETMOUNTFLAGS
devctl() command,
and then OR in
_MOUNT_REMOUNT.
For example:
int flags;
if(devctl(fd, DCMD_ALL_GETMOUNTFLAGS, &flags, sizeof flags, NULL) == EOK) {
flags |= _MOUNT_REMOUNT;
...
}
If you set _MFLAG_OCB in the flags,
then the special device string is ignored, and all servers are contacted.
If you don't set this bit, and the special device spec exists,
then only the server that created that device is contacted, and the full path
to spec is provided.
If datalen is any value <0, and
there's a data pointer, the function assumes that the data pointer is a pointer to a string.
Returns:
-1 on failure; no server supports the request (errno is set).
Classification:
QNX Neutrino
Safety: |
|
Cancellation point |
Yes |
Interrupt handler |
No |
Signal handler |
Yes |
Thread |
Yes |