Mono.Posix 1.0.5000.0 2.0.0.0 4.0.0.0 Public static members of this type may be thread safe; check your operating system documentation. No instance members are guaranteed to be thread safe. All public static members of this type are probably safe for multithreaded operations within managed code. (Methods which are obviously unsafe are synchronized, such as , but any hidden dependencies between e.g. and are not protected.) No multithreading guarantee is made between managed and unmanaged code. Check your operating system documentation for more information. Mono.Unix.Native.Stdlib System.CLSCompliant(false) The Syscall wrapper class makes it possible to execute the defined system calls. For more information on any of these system calls, the linux manual system (man) has exhaustive information on each syscall in section two: 'man 2 chdir' (or often chdir(2)) for example would give information related to chdir, including error codes, which are in general not listed here. The syscall wrapper follows the posix standard. This means some functionality or flags which are linux specific may not be available. Below is a list of known posix syscall functions and features that are not yet implemented.
Syscall
Status
mount
Inherently non-portable across the various Unix flavours, and will never be supported. Instead, use and invoke the command-line mount(8) program.
umount
Inherently non-portable across the various Unix flavours, and will never be supported. Instead, use and invoke the command-line umount(8) program.
ptrace
Not yet implemented.
ftime
Not yet implemented.
times
Not yet implemented.
ulimit
Not yet implemented.
sigaction
Not yet implemented.
sigsuspend
Not yet implemented.
sigpending
Not yet implemented.
setrlimit
Not yet implemented.
getrlimit
Not yet implemented.
getrusage
Not yet implemented.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.CLSCompliant(false)
  System.Int32 `` To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` To be added. To be added. Checks whether the calling task has the necessary access rights to perform operations specified by mode on the file pathname. AccessMode is a mask consisting of one or more of the values R_OK, W_OK, X_OK and F_OK which respectively test if the taks can read, write, execute or test if the file exists.

  On success, zero is returned. On error, -1 is returned and returns the translated error.

  Access to the file is denied if:

  Error
  Details

  A component of the path prefix is not a directory.

  A component of a pathname exceeded 255 characters, or an entire path name exceeded 1023 characters.

  The named file does not exist.

  Too many symbolic links were encountered in translating the pathname.

  Write access is requested for a file on a read-only file system.

  Write access is requested for a pure procedure (shared text) file presently being executed.

  Permission bits of the file mode do not permit the requested access, or search permission is denied on a component of the path prefix.

  The argument points outside the process's allocated address space.

  An I/O error occurred while reading from or writing to the file system.

  The access() and eaccess() system calls check the accessibility of the file named by the argument for the access permissions indicated by the argument. The value of is either the bitwise-inclusive OR of the access permissions to be checked ( for read permission, for write permission, and for execute/search permission), or the existence test .

  For additional information, see the "File Access Permission" section of (2) .

  The eaccess() system call uses the effective user ID and the group access list to authorize the request; the access() system call uses the real user ID in place of the effective user ID, the real group ID in place of the effective group ID, and the rest of the group access list.

  Even if a process's real or effective user has appropriate privileges and indicates success for , the file may not actually have execute permission bits set. Likewise for and .

- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.UInt32 `` To be added. If the call completes successfully, the taks will receive a SIGALARM signal after a delay of seconds seconds. A delay of zero seconds simply cancel the alarm. If an previous alarm was activated when the call is made then the previous alarm is cancelled. If a previous alarm was activated, the call returns the time delay before the expiration of that previous alarm (now canceled). Otherwise, it returns zero.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` To be added. Changes the current directory to 'path'. On success, zero is returned. On error, -1 is returned and can be used to retreive the translated error. See chrdir(2) for more information and error codes.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` To be added. To be added. Change permissions for a file or folder.

  On success, zero is returned. On error, -1 is returned and returns the translated error.

  The chmod() system call will fail and the file mode will be unchanged if:

  Error
  Details

  A component of the path prefix is not a directory.

  A component of a pathname exceeded 255 characters, or an entire path name exceeded 1023 characters.

  The named file does not exist.

  Search permission is denied for a component of the path prefix.

  Too many symbolic links were encountered in translating the pathname.

  The effective user ID does not match the owner of the file and the effective user ID is not the super-user.

  The named file resides on a read-only file system.

  The argument points outside the process's allocated address space.

  An I/O error occurred while reading from or writing to the file system.

  An attempt was made to set the sticky bit upon an executable.

  The fchmod() system call will fail if:

  Error
  Details

  The descriptor is not valid.

  The argument refers to a socket, not to a file.

  The file resides on a read-only file system.

  An I/O error occurred while reading from or writing to the file system.

  The file permission bits of the file named specified by or referenced by the file descriptor are changed to . The chmod() system call verifies that the process owner (user) either owns the file specified by (or ) , or is the super-user. The chmod() system call follows symbolic links to operate on the target of the link rather than the link itself.

  The lchmod() system call is similar to chmod() but does not follow symbolic links.

  A mode is created from or'd permission bit masks defined in sys/stat.h :

  #define S_IRWXU 0000700 /* RWX mask for owner */

  #define S_IRUSR 0000400 /* R for owner */

  #define S_IWUSR 0000200 /* W for owner */

  #define S_IXUSR 0000100 /* X for owner */

  #define S_IRWXG 0000070 /* RWX mask for group */

  #define S_IRGRP 0000040 /* R for group */

  #define S_IWGRP 0000020 /* W for group */

  #define S_IXGRP 0000010 /* X for group */

  #define S_IRWXO 0000007 /* RWX mask for other */

  #define S_IROTH 0000004 /* R for other */

  #define S_IWOTH 0000002 /* W for other */

  #define S_IXOTH 0000001 /* X for other */

  #define S_ISUID 0004000 /* set user id on execution */

  #define S_ISGID 0002000 /* set group id on execution */

  #ifndef __BSD_VISIBLE

  #define S_ISTXT 0001000 /* sticky bit */

  #endif

  The Fx VM system totally ignores the sticky bit for executables. On UFS-based file systems (FFS, LFS) the sticky bit may only be set upon directories.

  If mode (the `sticky bit') is set on a directory, an unprivileged user may not delete or rename files of other users in that directory. The sticky bit may be set by any user on a directory which the user owns or has appropriate permissions. For more details of the properties of the sticky bit, see sticky(8) .

  If mode ISUID (set UID) is set on a directory, and the MNT_SUIDDIR option was used in the mount of the file system, then the owner of any new files and sub-directories created within this directory are set to be the same as the owner of that directory. If this function is enabled, new directories will inherit the bit from their parents. Execute bits are removed from the file, and it will not be given to root. This behavior does not change the requirements for the user to be allowed to write the file, but only the eventual owner after it has been created. Group inheritance is not affected.

  This feature is designed for use on fileservers serving PC users via ftp, SAMBA, or netatalk. It provides security holes for shell users and as such should not be used on shell machines, especially on home directories. This option requires the SUIDDIR option in the kernel to work. Only UFS file systems support this option. For more details of the suiddir mount option, see mount(8) .

  Writing or changing the owner of a file turns off the set-user-id and set-group-id bits unless the user is the super-user. This makes the system somewhat more secure by protecting set-user-id (set-group-id) files from remaining set-user-id (set-group-id) if they are modified, at the expense of a degree of compatibility.

- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` `` To be added. To be added. To be added. Change owner for a file or folder.

  On success, zero is returned. On error, -1 is returned and returns the translated error.

  The chown() and lchown() will fail and the file will be unchanged if:

  Error
  Details

  A component of the path prefix is not a directory.

  A component of a pathname exceeded 255 characters, or an entire path name exceeded 1023 characters.

  The named file does not exist.

  Search permission is denied for a component of the path prefix.

  Too many symbolic links were encountered in translating the pathname.

  The effective user ID is not the super-user.

  The named file resides on a read-only file system.

  The argument points outside the process's allocated address space.

  An I/O error occurred while reading from or writing to the file system.

  The fchown() system call will fail if:

  Error
  Details

  The argument does not refer to a valid descriptor.

  The argument refers to a socket, not a file.

  The effective user ID is not the super-user.

  The named file resides on a read-only file system.

  An I/O error occurred while reading from or writing to the file system.

  The owner ID and group ID of the file named by or referenced by is changed as specified by the arguments and . The owner of a file may change the to a group of which he or she is a member, but the change capability is restricted to the super-user.

  The chown() system call clears the set-user-id and set-group-id bits on the file to prevent accidental or mischievous creation of set-user-id and set-group-id programs if not executed by the super-user. The chown() system call follows symbolic links to operate on the target of the link rather than the link itself.

  The fchown() system call is particularly useful when used in conjunction with the file locking primitives (see (2) ) .

  The lchown() system call is similar to chown() but does not follow symbolic links.

  One of the owner or group id's may be left unchanged by specifying it as -1.

- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` To be added. Change root directory. To be added. See chroot(2) for more information and error codes.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` To be added. Closes the file descriptor.

  On success, zero is returned. On error, -1 is returned and returns the translated error.

  The close() system call will fail if:

  Error
  Details

  The argument is not an active descriptor.

  An interrupt was received.

  The underlying object did not fit, cached data was lost.

  The close() system call deletes a descriptor from the per-process object reference table. If this is the last reference to the underlying object, the object will be deactivated. For example, on the last close of a file the current seek pointer associated with the file is lost; on the last close of a (2) associated naming information and queued data are discarded; on the last close of a file holding an advisory lock the lock is released (see further (2) ) . However, the semantics of System V and St -p1003.1-88 dictate that all (2) advisory record locks associated with a file for a given process are removed when any file descriptor for that file is closed by that process.

  When a process exits, all associated file descriptors are freed, but since there is a limit on active descriptors per processes, the close() system call is useful when a large quantity of file descriptors are being handled.

  When a process forks (see (2) ) , all descriptors for the new child process reference the same objects as they did in the parent before the fork. If a new process is then to be run using (2) , the process would normally inherit these descriptors. Most of the descriptors can be rearranged with (2) or deleted with close() before the (2) is attempted, but if some of these descriptors will still be needed if the execve fails, it is necessary to arrange for them to be closed if the execve succeeds. For this reason, the call Li fcntl(d, F_SETFD, FD_CLOEXEC) is provided, which arranges that a descriptor will be closed after a successful execve; the call Li fcntl(d, F_SETFD, 0) restores the default, which is to not close the descriptor.

- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` The directory to close. This must be a value returned by . Closes the directory. To be added.

  The opendir() function opens the directory named by , associates a directory stream with it and returns a pointer to be used to identify the directory stream in subsequent operations. The pointer is returned if cannot be accessed, or if it cannot (3) enough memory to hold the whole thing.

  The readdir() function returns a pointer to the next directory entry. It returns upon reaching the end of the directory or detecting an invalid seekdir() operation.

  The readdir_r() function provides the same functionality as readdir(), but the caller must provide a directory buffer to store the results in. If the read succeeds, is pointed at the ; upon reaching the end of the directory is set to . The readdir_r() function returns 0 on success or an error number to indicate failure.

  The telldir() function returns the current location associated with the named directory stream . Values returned by telldir() are good only for the lifetime of the pointer, , from which they are derived. If the directory is closed and then reopened, prior values returned by telldir() will no longer be valid.

  The seekdir() function sets the position of the next readdir() operation on the directory stream . The new position reverts to the one associated with the directory stream when the telldir() operation was performed.

  The rewinddir() function resets the position of the named directory stream to the beginning of the directory.

  The closedir() function closes the named directory stream and frees the structure associated with the pointer, returning 0 on success. On failure, -1 is returned and the global variable is set to indicate the error.

  The dirfd() function returns the integer file descriptor associated with the named directory stream , see (2) .

  Sample code which searches a directory for entry ``name'' is:

  len = strlen(name);

  dirp = opendir(".");

  while ((dp = readdir(dirp)) != NULL)

  (void)closedir(dirp);

  return NOT_FOUND;

- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.UInt64 `` `` `` To be added. To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` To be added. To be added. Creates a file 'pathname' using the given file mode flags. To be added.

  This interface is made obsolete by: (2) .

  The creat() function is the same as:

  open(path, O_CREAT | O_TRUNC | O_WRONLY, mode);

- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Obsolete("This is insecure and should not be used", true)
  System.String `` `` To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Obsolete(""Nobody knows precisely what cuserid() does... DO NOT USE cuserid(). `string' must hold L_cuserid characters. Use getlogin_r instead.")
  System.String `` To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` To be added. dup duplicates a file descriptor to the lowest unused file descriptor available. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` To be added. To be added. dup2 duplicates a file descriptor to another specified file descriptor. If the destination file descriptor is already used, it is closed. The two descriptors share all (ie. file locks, position, etc.) but the close-on-exec flag. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Obsolete("This is insecure and should not be used", true)
  System.Int32 `` `` To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 To be added. To be added. To be added.
- Method
  4.0.0.0
  System.Int32 `` To be added. To be added. To be added. To be added.
- Method
  4.0.0.0
  System.Int32 `` To be added. To be added. To be added. To be added.
- Method
  4.0.0.0
  System.Int32 `` `` `` `` To be added. To be added. To be added. To be added. To be added. To be added. To be added.
- Method
  4.0.0.0
  System.Int32 `` `` `` `` To be added. To be added. To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` `` To be added. To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` `` To be added. To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` `` To be added. To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` `` To be added. To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` `` To be added. To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` To be added. Synchronize changes to a file.

  On success, zero is returned. On error, -1 is returned and returns the translated error.

  The fsync() fails if:

  Error
  Details

  The argument is not a valid descriptor.

  The argument refers to a socket, not to a file.

  An I/O error occurred while reading from or writing to the file system.

  The fsync() system call causes all modified data and attributes of to be moved to a permanent storage device. This normally results in all in-core modified copies of buffers for the associated file to be written to a disk.

  The fsync() system call should be used by programs that require a file to be in a known state, for example, in building a simple transaction facility.

- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` `` To be added. To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  Mono.Unix.Native.Group `` To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  Mono.Unix.Native.Passwd `` To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int64 `` `` `` To be added. To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int64 `` `` `` To be added. To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int64 `` `` `` `` To be added. To be added. To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int64 `` `` To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int64 `` `` `` To be added. To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int64 `` `` `` To be added. To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int64 `` `` To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int64 `` `` `` To be added. To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` `` To be added. To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` `` `` To be added. To be added. To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` `` `` To be added. To be added. To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` `` `` `` To be added. To be added. To be added. To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` To be added. To be added. get file status

  On success, zero is returned. On error, -1 is returned and returns the translated error.

  The stat() and lstat() system calls will fail if:

  Error
  Details

  Search permission is denied for a component of the path prefix.

  The or argument points to an invalid address.

  An I/O error occurred while reading from or writing to the file system.

  Too many symbolic links were encountered in translating the pathname.

  A component of a pathname exceeded 255 characters, or an entire path name exceeded 1023 characters.

  The named file does not exist.

  A component of the path prefix is not a directory.

  The file size in bytes cannot be represented correctly in the structure pointed to by .

  The fstat() system call will fail if:
  Error
  Details

  The argument is not a valid open file descriptor.

  The argument points to an invalid address.

  An I/O error occurred while reading from or writing to the file system.

  The file size in bytes cannot be represented correctly in the structure pointed to by .

  The stat() system call obtains information about the file pointed to by . Read, write or execute permission of the named file is not required, but all directories listed in the path name leading to the file must be searchable.

  The lstat() system call is like stat() except in the case where the named file is a symbolic link, in which case lstat() returns information about the link, while stat() returns information about the file the link references.

  The fstat() system call obtains the same information about an open file known by the file descriptor .

  The argument is a pointer to a Vt stat structure as defined by sys/stat.h and into which information is placed concerning the file.

  The fields of Vt "struct stat" related to the file system are as follows:

  st_dev

  The numeric ID of the device containing the file.

  st_ino

  The file's inode number.

  st_nlink

  The number of hard links to the file.

  The st_dev and st_ino fields together identify the file uniquely within the system.

  The time-related fields of Vt "struct stat" are as follows:

  st_atime

  Time when file data last accessed. Changed by the (2) , (2) , (2) and (2) system calls.

  st_mtime

  Time when file data last modified. Changed by the (2) , (2) , (2) , (2) , (2) and (2) system calls.

  st_ctime

  Time when file status was last changed (inode data modification). Changed by the (2) , (2) , (2) , (2) , (2) , (2) , (2) , (2) , (2) , (2) , (2) , (2) , (2) , (2) , (2) and (2) system calls.

  st_birthtime

  Time when the inode was created.

  If is not defined, the time-related fields are defined as:

  #ifndef _POSIX_SOURCE

  #define st_atime st_atimespec.tv_sec

  #define st_mtime st_mtimespec.tv_sec

  #define st_ctime st_ctimespec.tv_sec

  #endif

  The size-related fields of the Vt "struct stat" are as follows:

  st_size

  The file size in bytes.

  st_blksize

  The optimal I/O block size for the file.

  st_blocks

  The actual number of blocks allocated for the file in 512-byte units. As short symbolic links are stored in the inode, this number may be zero.

  The access-related fields of Vt "struct stat" are as follows:

  st_uid

  The user ID of the file's owner.

  st_gid

  The group ID of the file.

  st_mode

  Status of the file (see below).

  The status information word has the following bits:

  #define S_IFMT 0170000 /* type of file */

  #define S_IFIFO 0010000 /* named pipe (fifo) */

  #define S_IFCHR 0020000 /* character special */

  #define S_IFDIR 0040000 /* directory */

  #define S_IFBLK 0060000 /* block special */

  #define S_IFREG 0100000 /* regular */

  #define S_IFLNK 0120000 /* symbolic link */

  #define S_IFSOCK 0140000 /* socket */

  #define S_IFWHT 0160000 /* whiteout */

  #define S_ISUID 0004000 /* set user id on execution */

  #define S_ISGID 0002000 /* set group id on execution */

  #define S_ISVTX 0001000 /* save swapped text even after use */

  #define S_IRUSR 0000400 /* read permission, owner */

  #define S_IWUSR 0000200 /* write permission, owner */

  #define S_IXUSR 0000100 /* execute/search permission, owner */

  For a list of access modes, see sys/stat.h , (2) and (2) . The following macros are available to test whether a st_mode value passed in the argument corresponds to a file of the specified type:

  S_ISBLK()m

  Test for a block special file.

  S_ISCHR()m

  Test for a character special file.

  S_ISDIR()m

  Test for a directory.

  S_ISFIFO()m

  Test for a pipe or FIFO special file.

  S_ISLNK()m

  Test for a symbolic link.

  S_ISREG()m

  Test for a regular file.

  S_ISSOCK()m

  Test for a socket.

  S_ISWHT()m

  Test for a whiteout.

  The macros evaluate to a non-zero value if the test is true or to the value 0 if the test is false.

- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` To be added. To be added. Truncate or extend a file to length

  On success, zero is returned. On error, -1 is returned and returns the translated error.

  The ftruncate() system call succeeds unless:

  Error
  Details

  The argument is not a valid descriptor.

  The argument references a socket, not a file.

  The descriptor is not open for writing.

  The truncate() system call causes the file named by or referenced by to be truncated or extended to bytes in size. If the file was larger than this size, the extra data is lost. If the file was smaller than this size, it will be extended as if by writing bytes with the value zero. With ftruncate(), the file must be open for writing.

- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Text.StringBuilder `` To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.IntPtr `` `` To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.UInt32 Get the effective group ID for the current process. Returns the effective group ID for the current process.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.UInt32 Get the effective user ID for the current process. Returns the effective user ID for the current process.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  Mono.Unix.Native.Fstab To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  Mono.Unix.Native.Fstab `` To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  Mono.Unix.Native.Fstab `` To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.UInt32 Get the group ID for the current process. Returns the group ID for the current process.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  Mono.Unix.Native.Group To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  Mono.Unix.Native.Group `` To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` `` To be added. To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  Mono.Unix.Native.Group `` To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` `` To be added. To be added. To be added. To be added. To be added. To be added.
- Method
  4.0.0.0
  Mono.Unix.Native.Group[] `` instance containing the user to get the groups for. Determine the group access list for a user. array containing all of the Unix groups that belongs to.

  Determines the group access list for by using the getgrouplist(3) system call.

- Method
  4.0.0.0
  Mono.Unix.Native.Group[] `` instance containing username to get the groups for. Determines the group access list for a user by username. array containing all of the Unix groups that belongs to. Throws when the is empty or not exists.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int64 To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` To be added. Retrieves the hostname. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` To be added. To be added. Retrieves the hostname. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.String To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Obsolete("Dropped in POSIX 1003.1-2001. Use Syscall.sysconf (SysconfName._SC_PAGESIZE).")
  System.Int32 To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 Get the process group. To be added. getpgrp always returns the current process group. See getpgrp(2) for more information.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 Returns the unique identifier for the current process. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 Returns the unique identifier for the parent process. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  Mono.Unix.Native.Passwd To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  Mono.Unix.Native.Passwd `` To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` `` To be added. To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  Mono.Unix.Native.Passwd `` To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` `` To be added. To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` `` To be added. To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` `` To be added. To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.UInt32 Get the user ID for the current process. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.String To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int64 `` `` `` To be added. To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int64 `` `` `` To be added. To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int64 `` `` `` `` To be added. To be added. To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Boolean `` To be added. Is the file descriptor a TTY? To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` The process to signal. The signal to send. Send a signal to the specified process. To be added. To be added.
- Field
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 9 To be added. To be added.
- Field
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 9 To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` `` To be added. To be added. To be added. Change the ownership for 'path'. To be added. The owner of the file specified by path is changed. Only the super-user may change the owner of a file. The owner of a file may change the group of the file to any group of which that owner is a member. The super-user may change the group arbitrarily. See chown(2) for more information and error codes.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int64 `` `` `` To be added. To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int64 `` `` `` To be added. To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int64 `` `` `` `` To be added. To be added. To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` To be added. To be added. Create a hard link from oldpath to newpath.

  On success, zero is returned. On error, -1 is returned and returns the translated error.

  The link() system call will fail and no link will be created if:

  Error
  Details

  A component of either path prefix is not a directory.

  A component of either pathname exceeded 255 characters, or entire length of either path name exceeded 1023 characters.

  A component of either path prefix does not exist.

  The file system containing the file named by does not support links.

  The link count of the file named by would exceed 32767.

  A component of either path prefix denies search permission.

  The requested link requires writing in a directory with a mode that denies write permission.

  Too many symbolic links were encountered in translating one of the pathnames.

  The file named by does not exist.

  The link named by does exist.

  The file named by is a directory or is flagged immutable or append-only (see (2) ) .

  The link named by and the file named by are on different file systems.

  The directory in which the entry for the new link is being placed cannot be extended because there is no space left on the file system containing the directory.

  The directory in which the entry for the new link is being placed cannot be extended because the user's quota of disk blocks on the file system containing the directory has been exhausted.

  An I/O error occurred while reading from or writing to the file system to make the directory entry.

  The requested link requires writing in a directory on a read-only file system.

  One of the pathnames specified is outside the process's allocated address space.

  The link() system call atomically creates the specified directory entry (hard link) with the attributes of the underlying object pointed at by . If the link is successful: the link count of the underlying object is incremented; and share equal access and rights to the underlying object.

  If is removed, the file is not deleted and the link count of the underlying object is decremented.

  The object pointed at by the argument must exist for the hard link to succeed and both and must be in the same file system. The argument may not be a directory.

- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int64 `` `` To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int64 `` `` `` To be added. To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int64 `` `` `` To be added. To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int64 `` `` To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int64 `` `` `` To be added. To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int64 `` `` `` To be added. To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` `` To be added. To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int64 `` `` `` To be added. To be added. To be added. Changes the read/write file offset of a file descriptor. To be added. The offset parameter is interpreted according to the possible following values of whence:
  Value
  Description
  SEEK_SET
  the new file offset will be the current offset plus offset.
  SEEK_CUR
  the new file offset will be offset.
  SEEK_END
  the new file offset will be the end of the file plus offset. If we seek past the end of a file, the new file region contains 0.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` `` To be added. To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` `` `` To be added. To be added. To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` `` `` To be added. To be added. To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` `` `` `` To be added. To be added. To be added. To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` To be added. To be added. Retrieves via output paramter the file status struct for a file. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` To be added. To be added. To be added. To be added. To be added.
- Field
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.IntPtr To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` `` To be added. To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` To be added. To be added. Create a directory at 'path' with the given FilePermissions.

  On success, zero is returned. On error, -1 is returned and returns the translated error.

  The mkdir() system call will fail and no directory will be created if:

  Error
  Details

  A component of the path prefix is not a directory.

  A component of a pathname exceeded 255 characters, or an entire path name exceeded 1023 characters.

  A component of the path prefix does not exist.

  Search permission is denied for a component of the path prefix, or write permission is denied on the parent directory of the directory to be created.

  Too many symbolic links were encountered in translating the pathname.

  The named file resides on a read-only file system.

  The named file exists.

  The new directory cannot be created because there is no space left on the file system that will contain the directory.

  There are no free inodes on the file system on which the directory is being created.

  The new directory cannot be created because the user's quota of disk blocks on the file system that will contain the directory has been exhausted.

  The user's quota of inodes on the file system on which the directory is being created has been exhausted.

  An I/O error occurred while making the directory entry or allocating the inode.

  An I/O error occurred while reading from or writing to the file system.

  The argument points outside the process's allocated address space.

  The directory is created with the access permissions specified by and restricted by the (2) of the calling process.

  The directory's owner ID is set to the process's effective user ID. The directory's group ID is set to that of the parent directory in which it is created.

- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` `` To be added. To be added. To be added. Create a special file node.

  On success, zero is returned. On error, -1 is returned and returns the translated error.

  The mknod() system call will fail and the file will be not created if:

  Error
  Details

  A component of the path prefix is not a directory.

  A component of a pathname exceeded 255 characters, or an entire path name exceeded 1023 characters.

  A component of the path prefix does not exist.

  Search permission is denied for a component of the path prefix.

  Too many symbolic links were encountered in translating the pathname.

  The process's effective user ID is not super-user.

  An I/O error occurred while making the directory entry or allocating the inode.

  The directory in which the entry for the new node is being placed cannot be extended because there is no space left on the file system containing the directory.

  There are no free inodes on the file system on which the node is being created.

  The directory in which the entry for the new node is being placed cannot be extended because the user's quota of disk blocks on the file system containing the directory has been exhausted.

  The user's quota of inodes on the file system on which the node is being created has been exhausted.

  The named file resides on a read-only file system.

  The named file exists.

  The argument points outside the process's allocated address space.

  Creating anything else than a block or character special file (or a whiteout ) is not supported.

  The file system node is created with the file type and access permissions specified in . The access permissions are modified by the process's umask value.

  If indicates a block or character special file, is a configuration dependent specification denoting a particular device on the system. Otherwise, is ignored.

  The mknod() system call requires super-user privileges.

- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.IntPtr `` `` `` `` `` `` To be added. To be added. To be added. To be added. To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` `` To be added. To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.IntPtr `` `` `` `` To be added. To be added. To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` `` To be added. To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` To be added. To be added. To be added. To be added. To be added.
- Method
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` To be added. Change the priority of the current process by given increment. To be added. Adds 'increment' to the priority of the calling task. Only a task with superuser privileges may specify a negative increment.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` To be added. To be added. Creates/opens a file 'pathname' using the given file open flags.

  If successful, open() returns a non-negative integer, termed a file descriptor. It returns -1 on failure, and sets to indicate the error.

  The named file is opened unless:

  Error
  Details

  A component of the path prefix is not a directory.

  A component of a pathname exceeded 255 characters, or an entire path name exceeded 1023 characters.

  is not set and the named file does not exist.

  A component of the path name that must exist does not exist.

  Search permission is denied for a component of the path prefix.

  The required permissions (for reading and/or writing) are denied for the given flags.

  is specified, the file does not exist, and the directory in which it is to be created does not permit writing.

  Too many symbolic links were encountered in translating the pathname.

  The named file is a directory, and the arguments specify it is to be opened for writing.

  The named file resides on a read-only file system, and the file is to be modified.

  The process has already reached its limit for open file descriptors.

  The system file table is full.

  was specified and the target is a symbolic link.

  The named file is a character special or block special file, and the device associated with this special file does not exist.

  The named file is a fifo, no process has it open for reading, and the arguments specify it is to be opened for writing.

  The open() operation was interrupted by a signal.

  or is specified but the underlying file system does not support locking.

  The named file is a special file mounted through a file system that does not support access to it (e.g. NFS).

  and one of or is specified and the file is locked.

  is specified, the file does not exist, and the directory in which the entry for the new file is being placed cannot be extended because there is no space left on the file system containing the directory.

  is specified, the file does not exist, and there are no free inodes on the file system on which the file is being created.

  is specified, the file does not exist, and the directory in which the entry for the new file is being placed cannot be extended because the user's quota of disk blocks on the file system containing the directory has been exhausted.

  is specified, the file does not exist, and the user's quota of inodes on the file system on which the file is being created has been exhausted.

  An I/O error occurred while making the directory entry or allocating the inode for .

  The file is a pure procedure (shared text) file that is being executed and the open() system call requests write access.

  The argument points outside the process's allocated address space.

  and were specified and the file exists.

  An attempt was made to open a socket (not currently implemented).

  An attempt was made to open a descriptor with an illegal combination of , , and .

  The file name specified by is opened for reading and/or writing as specified by the argument and the file descriptor returned to the calling process. The argument may indicate the file is to be created if it does not exist (by specifying the flag). In this case open() requires a third argument , and the file is created with mode as described in (2) and modified by the process' umask value (see (2) ) .

  The flags specified are formed by or Ns 'ing the following values

  Value
  Details
  O_RDONLY
  open for reading only
  O_WRONLY
  open for writing only
  O_RDWR
  open for reading and writing
  O_NONBLOCK
  do not block on open
  O_APPEND
  append on each write
  O_CREAT
  create file if it does not exist
  O_TRUNC
  truncate size to 0
  O_EXCL
  error if create and file exists
  O_SHLOCK
  atomically obtain a shared lock
  O_EXLOCK
  atomically obtain an exclusive lock
  O_DIRECT
  eliminate or reduce cache effects
  O_FSYNC
  synchronous writes
  O_NOFOLLOW
  do not follow symlinks

  Opening a file with set causes each write on the file to be appended to the end. If is specified and the file exists, the file is truncated to zero length. If is set with and the file already exists, open() returns an error. This may be used to implement a simple exclusive access locking mechanism. If is set and the last component of the pathname is a symbolic link, open() will fail even if the symbolic link points to a non-existent name. If the flag is specified and the open() system call would result in the process being blocked for some reason (e.g., waiting for carrier on a dialup line), open() returns immediately. The descriptor remains in non-blocking mode for subsequent operations.

  If is used in the mask, all writes will immediately be written to disk, the kernel will not cache written data and all writes on the descriptor will not return until the data to be written completes.

  If is used in the mask and the target file passed to open() is a symbolic link then the open() will fail.

  When opening a file, a lock with (2) semantics can be obtained by setting for a shared lock, or for an exclusive lock. If creating a file with , the request for the lock will never fail (provided that the underlying file system supports locking).

  may be used to minimize or eliminate the cache effects of reading and writing. The system will attempt to avoid caching the data you read or write. If it cannot avoid caching the data, it will minimize the impact the data has on the cache. Use of this flag can drastically reduce performance if not used with care.

  If successful, open() returns a non-negative integer, termed a file descriptor. It returns -1 on failure. The file pointer used to mark the current position within the file is set to the beginning of the file.

  When a new file is created it is given the group of the directory which contains it.

  The new descriptor is set to remain open across (2) system calls; see (2) and (2) .

  The system imposes a limit on the number of file descriptors open simultaneously by one process. The (2) system call returns the current system limit.

- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` `` To be added. To be added. To be added. Creates/opens a file 'pathname' using the given open and file permission flags. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.IntPtr `` To be added. Opens a directory at 'path'. To be added. `class OpendirDemo { public static void Main(string[] argv) { IntPtr dir = Syscall.opendir("/tmp"); Dirent nextentry; while ((nextentry = Syscall.readdir (dir)) != null) { Console.WriteLine(nextentry.d_name); } Syscall.closedir (dir); } }`
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` `` To be added. To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int64 `` `` To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int64 `` `` `` To be added. To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 Pause the current process. The task sleeps until a signal is received. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` `` To be added. To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` `` `` To be added. To be added. To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` `` To be added. To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` `` To be added. To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int64 `` `` `` `` To be added. To be added. To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int64 `` `` `` `` To be added. To be added. To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int64 `` `` `` `` To be added. To be added. To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int64 `` `` `` `` To be added. To be added. To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int64 `` `` `` To be added. To be added. To be added. Reads up to count bytes into buf from fd.

  If successful, the number of bytes actually read is returned. Upon reading end-of-file, zero is returned. Otherwise, a -1 is returned and the global variable is set to indicate the error.

  The read(), readv(), and pread() system calls will succeed unless:

  Error
  Details

  The argument is not a valid file or socket descriptor open for reading.

  The argument points outside the allocated address space.

  An I/O error occurred while reading from the file system.

  A read from a slow device was interrupted before any data arrived by the delivery of a signal.

  The pointer associated with was negative.

  The file was marked for non-blocking I/O, and no data were ready to be read.

  The file descriptor is associated with a directory residing on a file system that does not allow regular read operations on directories (e.g. NFS).

  The file descriptor is associated with a file system and file type that do not allow regular read operations on it.

  The file descriptor is associated with a regular file, is greater than 0, is before the end-of-file, and is greater than or equal to the offset maximum established for this file system.

  In addition, readv() may return one of the following errors:

  Error
  Details

  The argument was less than or equal to 0, or greater than .

  One of the values in the array was negative.

  The sum of the values in the array overflowed a 32-bit integer.

  Part of the points outside the process's allocated address space.

  The pread() system call may also return the following errors:

  Error
  Details

  The value was negative.

  The file descriptor is associated with a pipe, socket, or FIFO.

  The read() system call attempts to read of data from the object referenced by the descriptor into the buffer pointed to by . The readv() system call performs the same action, but scatters the input data into the buffers specified by the members of the array: iov[0], iov[1], ..., iov[iovcnt|-|1]. The pread() system call performs the same function, but reads from the specified position in the file without modifying the file pointer.

  For readv(), the structure is defined as:

  struct iovec {

  };

  Each entry specifies the base address and length of an area in memory where data should be placed. The readv() system call will always fill an area completely before proceeding to the next.

  On objects capable of seeking, the read() starts at a position given by the pointer associated with (see (2) ) . Upon return from read(), the pointer is incremented by the number of bytes actually read.

  Objects that are not capable of seeking always read from the current position. The value of the pointer associated with such an object is undefined.

  Upon successful completion, read(), readv(), and pread() return the number of bytes actually read and placed in the buffer. The system guarantees to read the number of bytes requested if the descriptor references a normal file that has that many bytes left before the end-of-file, but in no other case.

- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int64 `` `` `` To be added. To be added. To be added. Reads up to count bytes into buf from fd. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  Mono.Unix.Native.Dirent `` To be added. Read directory entry. To be added. `class ReaddirDemo { public static void Main(string[] argv) { IntPtr dir = Syscall.opendir("/tmp"); Dirent nextentry; while ((nextentry = Syscall.readdir (dir)) != null) { Console.WriteLine(nextentry.d_name); } Syscall.closedir (dir); } }`
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` `` To be added. To be added. To be added. Thread-safe version of To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` To be added. To be added. Gets the destination of a symlink as a string.

  The call returns the count of characters placed in the buffer if it succeeds, or a -1 if an error occurs, placing the error code in the global variable .

  The readlink() system call will fail if:

  Error
  Details

  A component of the path prefix is not a directory.

  A component of a pathname exceeded 255 characters, or an entire path name exceeded 1023 characters.

  The named file does not exist.

  Search permission is denied for a component of the path prefix.

  Too many symbolic links were encountered in translating the pathname.

  The named file is not a symbolic link.

  An I/O error occurred while reading from the file system.

  The argument extends outside the process's allocated address space.

  The readlink() system call places the contents of the symbolic link in the buffer , which has size . The readlink() system call does not append a null character to .

- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` `` To be added. To be added. To be added. Gets the destination of a symlink as a string.

  The call returns the count of characters placed in the buffer if it succeeds, or a -1 if an error occurs, placing the error code in the global variable .

  The readlink() system call will fail if:

  Error
  Details

  A component of the path prefix is not a directory.

  A component of a pathname exceeded 255 characters, or an entire path name exceeded 1023 characters.

  The named file does not exist.

  Search permission is denied for a component of the path prefix.

  Too many symbolic links were encountered in translating the pathname.

  The named file is not a symbolic link.

  An I/O error occurred while reading from the file system.

  The argument extends outside the process's allocated address space.

  The readlink() system call places the contents of the symbolic link in the buffer , which has size . The readlink() system call does not append a null character to .

- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` `` `` `` To be added. To be added. To be added. To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` A containing the directory to remove. Removes the directory at 'path'.

  On success, zero is returned. On error, -1 is returned and returns the translated error.

  The named file is removed unless:

  Error
  Details

  A component of the path is not a directory.

  A component of a pathname exceeded 255 characters, or an entire path name exceeded 1023 characters.

  The named directory does not exist.

  Too many symbolic links were encountered in translating the pathname.

  The named directory contains files other than "" and "" in it.

  Search permission is denied for a component of the path prefix.

  Write permission is denied on the directory containing the link to be removed.

  The directory containing the directory to be removed is marked sticky, and neither the containing directory nor the directory to be removed are owned by the effective user ID.

  The directory to be removed is the mount point for a mounted file system.

  An I/O error occurred while deleting the directory entry or deallocating the inode.

  The directory entry to be removed resides on a read-only file system.

  The argument points outside the process's allocated address space.

  The rmdir() system call removes a directory file whose name is given by . The directory must not have any entries other than "." and ".."

- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.IntPtr `` To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int64 `` `` `` `` To be added. To be added. To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` To be added. Sets the group ID for the current process to 'gid'. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Obsolete("This is insecure and should not be used", true)
  System.Int32 `` To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` To be added. To be added. Sets the process group ID for the current process to 'pgid'. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` To be added. To be added. Sets the real and effective group ID for the current process to 'rgid' and 'egid' respectively. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` `` To be added. To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` `` To be added. To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` To be added. To be added. Sets the real and effective user ID for the current process to 'ruid' and 'euid' respectively. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 Creates a session and sets the process group ID. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` To be added. Sets the user ID for the current process to 'uid'. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` `` To be added. To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` `` `` To be added. To be added. To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` `` `` To be added. To be added. To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` `` `` `` To be added. To be added. To be added. To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.UInt32 `` To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` To be added. To be added. Get file status.

  On success, 0 is returned. On error, -1 is returned and returns the translated error.

  The stat() and lstat() system calls will fail if:

  Error
  Details

  Search permission is denied for a component of the path prefix.

  The or argument points to an invalid address.

  An I/O error occurred while reading from or writing to the file system.

  Too many symbolic links were encountered in translating the pathname.

  A component of a pathname exceeded 255 characters, or an entire path name exceeded 1023 characters.

  The named file does not exist.

  A component of the path prefix is not a directory.

  The file size in bytes cannot be represented correctly in the structure pointed to by .

  The stat() system call obtains information about the file pointed to by . Read, write or execute permission of the named file is not required, but all directories listed in the path name leading to the file must be searchable.

  The argument is a pointer to a Vt stat structure as defined by sys/stat.h and into which information is placed concerning the file.

  The fields of Vt "struct stat" related to the file system are as follows:

  st_dev

  The numeric ID of the device containing the file.

  st_ino

  The file's inode number.

  st_nlink

  The number of hard links to the file.

  The st_dev and st_ino fields together identify the file uniquely within the system.

  The time-related fields of Vt "struct stat" are as follows:

  st_atime

  Time when file data last accessed. Changed by the (2) , (2) , (2) and (2) system calls.

  st_mtime

  Time when file data last modified. Changed by the (2) , (2) , (2) , (2) , (2) and (2) system calls.

  st_ctime

  Time when file status was last changed (inode data modification). Changed by the (2) , (2) , (2) , (2) , (2) , (2) , (2) , (2) , (2) , (2) , (2) , (2) , (2) , (2) , (2) and (2) system calls.

  st_birthtime

  Time when the inode was created.

  If _POSIX_SOURCE is not defined, the time-related fields are defined as:

  #ifndef _POSIX_SOURCE

  #define st_atime st_atimespec.tv_sec

  #define st_mtime st_mtimespec.tv_sec

  #define st_ctime st_ctimespec.tv_sec

  #endif

  The size-related fields of the Vt "struct stat" are as follows:

  st_size

  The file size in bytes.

  st_blksize

  The optimal I/O block size for the file.

  st_blocks

  The actual number of blocks allocated for the file in 512-byte units. As short symbolic links are stored in the inode, this number may be zero.

  The access-related fields of Vt "struct stat" are as follows:

  st_uid

  The user ID of the file's owner.

  st_gid

  The group ID of the file.

  st_mode

  Status of the file (see below).

  The status information word has the following bits:

  #define S_IFMT 0170000 /* type of file */

  #define S_IFIFO 0010000 /* named pipe (fifo) */

  #define S_IFCHR 0020000 /* character special */

  #define S_IFDIR 0040000 /* directory */

  #define S_IFBLK 0060000 /* block special */

  #define S_IFREG 0100000 /* regular */

  #define S_IFLNK 0120000 /* symbolic link */

  #define S_IFSOCK 0140000 /* socket */

  #define S_IFWHT 0160000 /* whiteout */

  #define S_ISUID 0004000 /* set user id on execution */

  #define S_ISGID 0002000 /* set group id on execution */

  #define S_ISVTX 0001000 /* save swapped text even after use */

  #define S_IRUSR 0000400 /* read permission, owner */

  #define S_IWUSR 0000200 /* write permission, owner */

  #define S_IXUSR 0000100 /* execute/search permission, owner */

  For a list of access modes, see sys/stat.h , (2) and (2) . The following macros are available to test whether a st_mode value passed in the argument corresponds to a file of the specified type:

  S_ISBLK()m

  Test for a block special file.

  S_ISCHR()m

  Test for a character special file.

  S_ISDIR()m

  Test for a directory.

  S_ISFIFO()m

  Test for a pipe or FIFO special file.

  S_ISLNK()m

  Test for a symbolic link.

  S_ISREG()m

  Test for a regular file.

  S_ISSOCK()m

  Test for a socket.

  S_ISWHT()m

  Test for a whiteout.

  The macros evaluate to a non-zero value if the test is true or to the value 0 if the test is false.

- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` To be added. To be added. Thread-safe version of . To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` `` To be added. To be added. To be added. Thread-safe version of . To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.String `` To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` `` To be added. To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Void `` `` `` To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` To be added. To be added. Create a symbolic link from oldpath to newpath.

  On success, zero is returned. On error, -1 is returned and returns the translated error.

  The symbolic link succeeds unless:

  Error
  Details

  A component of the prefix is not a directory.

  A component of either pathname exceeded 255 characters, or the entire length of either path name exceeded 1023 characters.

  The named file does not exist.

  A component of the path prefix denies search permission.

  Too many symbolic links were encountered in translating the pathname.

  The path name pointed at by the argument already exists.

  An I/O error occurred while making the directory entry for , or allocating the inode for , or writing out the link contents of .

  The file would reside on a read-only file system.

  The directory in which the entry for the new symbolic link is being placed cannot be extended because there is no space left on the file system containing the directory.

  The new symbolic link cannot be created because there is no space left on the file system that will contain the symbolic link.

  There are no free inodes on the file system on which the symbolic link is being created.

  The directory in which the entry for the new symbolic link is being placed cannot be extended because the user's quota of disk blocks on the file system containing the directory has been exhausted.

  The new symbolic link cannot be created because the user's quota of disk blocks on the file system that will contain the symbolic link has been exhausted.

  The user's quota of inodes on the file system on which the symbolic link is being created has been exhausted.

  An I/O error occurred while making the directory entry or allocating the inode.

  The or argument points outside the process's allocated address space.

  A symbolic link is created to . is the name of the file created, is the string used in creating the symbolic link). Either name may be an arbitrary path name; the files need not be on the same file system.

- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 sync forces "dirty" (modified) filesystem buffers to be written to disk. On success, zero is returned. On error, -1 is returned and errno is set. can be called to obtain the translated error. The filesystem buffer cache is generally write-behind, for best performance. But since the cache is not persistent, it should be flushed periodically. A sync() call is issued by the update daemon periodically.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int64 `` To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int64 `` `` To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` `` To be added. To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Obsolete("Not necessarily portable due to cdecl restrictions. Use syslog(SyslogLevel, string) instead.")
  System.Int32 `` `` `System.ParamArray` To be added. To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Obsolete("Not necessarily portable due to cdecl restrictions. Use syslog(SyslogFacility, SyslogLevel, string) instead.")
  System.Int32 `` `` `` `System.ParamArray` To be added. To be added. To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int64 `` To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int64 `` To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` To be added. To be added. Truncate or extend a file to a specified length.

  On success, zero is returned. On error, -1 is returned and returns the translated error.

  The truncate() system call succeeds unless:

  Error
  Details

  A component of the path prefix is not a directory.

  A component of a pathname exceeded 255 characters, or an entire path name exceeded 1023 characters.

  The named file does not exist.

  Search permission is denied for a component of the path prefix.

  The named file is not writable by the user.

  Too many symbolic links were encountered in translating the pathname.

  The named file is a directory.

  The named file resides on a read-only file system.

  The file is a pure procedure (shared text) file that is being executed.

  An I/O error occurred updating the inode.

  The argument points outside the process's allocated address space.

  The ftruncate() system call succeeds unless:

  Error
  Details

  The argument is not a valid descriptor.

  The argument references a socket, not a file.

  The descriptor is not open for writing.

  The truncate() system call causes the file named by or referenced by to be truncated or extended to bytes in size. If the file was larger than this size, the extra data is lost. If the file was smaller than this size, it will be extended as if by writing bytes with the value zero. With ftruncate(), the file must be open for writing.

- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.String `` To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` `` To be added. To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.UInt32 `` `` To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  Mono.Unix.Native.FilePermissions `` To be added. Sets new umask. Returns previous umask value. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` A containing the directory entry to delete. Deletes a link to a file.

  On success, zero is returned. On error, -1 is returned and returns the translated error.

  The unlink() succeeds unless:

  Error
  Details

  A component of the path prefix is not a directory.

  A component of a pathname exceeded 255 characters, or an entire path name exceeded 1023 characters.

  The named file does not exist.

  Search permission is denied for a component of the path prefix.

  Write permission is denied on the directory containing the link to be removed.

  Too many symbolic links were encountered in translating the pathname.

  The named file is a directory.

  The named file has its immutable or append-only flag set, see the (2) manual page for more information.

  The directory containing the file is marked sticky, and neither the containing directory nor the file to be removed are owned by the effective user ID.

  The entry to be unlinked is the mount point for a mounted file system.

  An I/O error occurred while deleting the directory entry or deallocating the inode.

  The named file resides on a read-only file system.

  The argument points outside the process's allocated address space.

  If the file is not used and it was the last link, the file is also deleted.

  The unlink() system call removes the link named by from its directory and decrements the link count of the file which was referenced by the link. If that decrement reduces the link count of the file to zero, and no process has the file open, then all resources associated with the file are reclaimed. If one or more process have the file open when the last link is removed, the link is removed, but the removal of the file is delayed until all references to it have been closed. The argument may not be a directory.

- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` To be added. To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` `` `` To be added. To be added. To be added. Wait for a child process to stop or terminate. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 `` The process status, as obtained through or . Returns the exit status of the process. The exit status of a process. This can only be called if has returned .
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Boolean `` To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Boolean `` To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Boolean `` To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int64 `` `` `` To be added. To be added. To be added. write writes up to 'count' bytes to the file referenced by the file descriptor 'fileDescriptor' from the buffer starting at 'buf'.

  Upon successful completion the number of bytes which were written is returned. Otherwise a -1 is returned and the global variable is set to indicate the error.

  The write(), writev(), and pwrite() system calls will fail and the file pointer will remain unchanged if:

  Error
  Details

  The argument is not a valid descriptor open for writing.

  An attempt is made to write to a pipe that is not open for reading by any process.

  An attempt is made to write to a socket of type that is not connected to a peer socket.

  An attempt was made to write a file that exceeds the process's file size limit or the maximum file size.

  Part of or data to be written to the file points outside the process's allocated address space.

  The pointer associated with was negative.

  There is no free space remaining on the file system containing the file.

  The user's quota of disk blocks on the file system containing the file has been exhausted.

  An I/O error occurred while reading from or writing to the file system.

  A signal interrupted the write before it could be completed.

  The file was marked for non-blocking I/O, and no data could be written immediately.

  An attempt was made to write over a disk label area at the beginning of a slice. Use disklabel(8) Fl W to enable writing on the disk label area.

  In addition, writev() may return one of the following errors:

  Error
  Details

  The destination is no longer available when writing to a Ux domain datagram socket on which (2) had been used to set a destination address.

  The argument was less than or equal to 0, or greater than .

  One of the values in the array was negative.

  The sum of the values in the array overflowed a 32-bit integer.

  The mbuf pool has been completely exhausted when writing to a socket.

  The pwrite() system call may also return the following errors:

  Error
  Details

  The value was negative.

  The file descriptor is associated with a pipe, socket, or FIFO.

  The write() system call attempts to write of data to the object referenced by the descriptor from the buffer pointed to by . The writev() system call performs the same action, but gathers the output data from the buffers specified by the members of the array: iov[0], iov[1], ..., iov[iovcnt|-|1]. The pwrite() system call performs the same function, but writes to the specified position in the file without modifying the file pointer.

  For writev(), the structure is defined as:

  struct iovec {

  };

  Each entry specifies the base address and length of an area in memory from which data should be written. The writev() system call will always write a complete area before proceeding to the next.

  On objects capable of seeking, the write() starts at a position given by the pointer associated with , see (2) . Upon return from write(), the pointer is incremented by the number of bytes which were written.

  Objects that are not capable of seeking always write from the current position. The value of the pointer associated with such an object is undefined.

  If the real user is not the super-user, then write() clears the set-user-id bit on a file. This prevents penetration of system security by a user who captures a writable set-user-id file owned by the super-user.

  When using non-blocking I/O on objects such as sockets that are subject to flow control, write() and writev() may write fewer bytes than requested; the return value must be noted, and the remainder of the operation should be retried when possible.

- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int64 `` `` `` To be added. To be added. To be added. write writes up to 'count' bytes to the file referenced by the file descriptor 'fileDescriptor' from the buffer starting at 'buf'. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  Mono.Unix.Native.Signum `` To be added. To be added. To be added. To be added.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  Mono.Unix.Native.Signum `` To be added. To be added. To be added. To be added.