System Calls mount(2)
mount - mount a file system
int mount(const char *spec, const char *dir, int mflag, char
*fstype, char *dataptr, int datalen, char *optptr, int
The mount() function requests that a removable file system
contained on the block special file identified by spec be
mounted on the directory identified by dir. The spec and dir
arguments are pointers to path names.
After a successful call to mount(), all references to the
file dir refer to the root directory on the mounted file
system. The mounted file system is inserted into the kernel
list of all mounted file systems. This list can be examined
through the mounted file system table (see mnttab(4)).
The fstype argument is the file system type name. Standard
file system names are defined with the prefix MNTTYPE_ in
The dataptr argument is 0 if no file system-specific data is
to be passed; otherwise it points to an area of size datalen
that contains the file system-specific data for this mount
and the MS_DATA flag should be set.
If the MS_OPTIONSTR flag is set, then optptr points to a
buffer containing the list of options to be used for this
mount. The optlen argument specifies the length of the
buffer. On completion of the mount() call, the options in
effect for the mounted file system are returned in this
buffer. If MS_OPTIONSTR is not specified, then the options
for this mount will not appear in the mounted file systems
The mflag argument is constructed by a bitwise-inclusive-OR
of flags from the following list, defined in <sys/mount.h>.
The dataptr and datalen arguments describe a block of
file system-specific binary data at address dataptr of
length datalen. This is interpreted by file system-
specific code within the operating system and its for-
mat depends on the file system type. If a particular
file system type does not require this data, dataptr
SunOS 5.9 Last change: 22 Jan 2002 1
System Calls mount(2)
and datalen should both be 0.
Mount a file system globally if the system is config-
ured and booted as part of a cluster (see clinfo(1M)).
Prevent programs that are marked set-user-ID or set-
group-ID from executing (see chmod(1)). It also causes
open(2) to return ENXIO when attempting to open block
or character special files.
The optptr and optlen arguments describe a character
buffer at address optptr of size optlen. When calling
mount(), the character buffer should contain a null-
terminated string of options to be passed to the file
system-specific code within the operating system. On a
successful return, the file system-specific code will
return the list of options recognized. Unrecognized
options are ignored. The format of the string is a
list of option names separated by commas. Options that
have values (rather than binary options such as suid
or nosuid), are separated by "=" such as dev=2c4046c.
Standard option names are defined in <sys/mntent.h>.
Only strings defined in the "C" locale are supported.
The maximum length option string that can be passed to
or returned from a mount() call is defined by the
MAX_MNTOPT_STR constant. The buffer should be long
enough to contain more options than were passed in, as
the state of any default options that were not passed
in the input option string may also be returned in the
recognized options list that is returned.
Allow the file system to be mounted over an existing
file system mounted on dir, making the underlying file
system inaccessible. If a mount is attempted on a
pre-existing mount point without setting this flag,
the mount will fail.
Mount the file system for reading only. This flag
should also be specified for file systems that are
incapable of writing (for example, CDROM). Without
this flag, writing is permitted according to indivi-
dual file accessibility.
Remount a read-only file system as read-write.
SunOS 5.9 Last change: 22 Jan 2002 2
System Calls mount(2)
Upon successful completion, 0 is returned. Otherwise, -1 is
returned and errno is set to indicate the error.
The mount() function will fail if:
EBUSY The dir argument is currently mounted on, is someone's
current working directory, or is otherwise busy; the
device associated with spec is currently mounted; or
there are no more mount table entries.
The spec, dir, fstype, dataptr, or optptr argument
points outside the allocated address space of the pro-
The super block has an invalid magic number or the
fstype is invalid.
ELOOP Too many symbolic links were encountered in translat-
ing spec or dir.
The length of the path argument exceeds PATH_MAX, or
the length of a path component exceeds NAME_MAX while
_POSIX_NO_TRUNC is in effect.
None of the named files exists or is a null pathname.
The path argument points to a remote machine and the
link to that machine is no longer active.
The file system state in the super-block is not
FsOKAY and mflag requests write permission.
The spec argument is not a block special device.
The dir argument is not a directory, or a component of
a path prefix is not a directory.
A global mount is attempted (the MS_GLOBAL flag is set
in mflag) on a machine which is not booted as a clus-
ter or a local mount is attempted and dir is within a
globally mounted file system.
SunOS 5.9 Last change: 22 Jan 2002 3
System Calls mount(2)
ENXIO The device associated with spec does not exist.
The length of the option string to be returned in the
optptr argument exceeds the size of the buffer speci-
fied by optlen.
EPERM The effective user ID is not superuser.
The spec argument is remote and cannot be mounted.
EROFS The spec argument is write protected and mflag
requests write permission.
The mount() function can be invoked only by processes with
When a UFS file system is mounted with logging enabled, file
system transactions that free blocks from files might not
actually add those freed blocks to the file system's free
list until some unspecified time in the future. This
behavior improves file system performance but does not con-
form to the POSIX, Single UNIX Specification, SPARC Confor-
mance Definition, System V Application Binary Interface,
System V Interface Definition, and X/Open Portability Guide
Standards, which require that freed space be available
immediately. To enable standards conformance regarding file
deletions or to address the problem of not being able to
grow files on a relatively full UFS file system even after
files have been deleted, disable UFS logging (see
mount(1M), mount_ufs(1M), umount(2), mnttab(4)
MS_OPTIONSTR-type option strings should be used.
Some flag bits set file system options that can also be
passed in an option string. Options are first set from the
option string with the last setting of an option in the
string determining the value to be set by the option string.
Any options controlled by flags are then applied, overriding
any value set by the option string.
SunOS 5.9 Last change: 22 Jan 2002 4