Copyright Digital Equipment Corp. All rights reserved.

Return_Values

   n                  Upon successful completion, the value returned
                      depends on the value of the request argument
                      as follows:

                      o  F_DUPFD - Returns a new file descriptor.

                      o  F_GETFD - Returns FD_CLOEXEC or 0.

                      o  F_SETFD, F_GETLK, F_SETLK, F_UNLCK - Return
                         a value other than -1.

   -1                 Indicates that an error occurred. The function
                      sets errno to one of the following values:

                      o  EACCES - The request argument is F_SETLK;
                         the type of lock (l_type) is a shared (F_
                         RDLCK) or exclusive (F_WRLCK) lock, and the
                         segment of a file to be locked is already
                         exclusive-locked by another process; or
                         the type is an exclusive (F_WRLCK) lock and
                         the some portion of the segment of a file
                         to be locked is already shared-locked or
                         exclusive-locked by another process.

                      o  EBADF - The file_desc argument is not a
                         valid open file descriptor and the arg
                         argument is negative or greater than or
                         equal to the per-process limit.

                         The request parameter is F_SETLK or F_
                         SETLKW, the type of lock (l_type) is a
                         shared lock (F_RDLCK), and file_desc is not
                         a valid file descriptor open for reading.

                         The type of lock (l_type) is an exclusive
                         lock (F_WRLCK), and file_desc is not a
                         valid file descriptor open for writing.

                      o  EFAULT - The arg argument is an invalid
                         address.

                      o  EINVAL - The request argument is F_DUPFD
                         and arg is negative or greater than or
                         equal to OPEN_MAX.

                         Either the OPEN_MAX value or the per-
                         process soft descriptor limit is checked.

                         An illegal value was provided for the
                         request argument.

                         The request argument is F_GETLK, F_SETLK,
                         or F_SETLKW and the data pointed to by arg
                         is invalid, or file_desc refers to a file
                         that does not support locking.

                      o  EMFILE - The request argument is F_DUPFD
                         and too many or OPEN_MAX file descriptors
                         are currently open in the calling process,
                         or no file descriptors greater than or
                         equal to arg are available.

                         Either the OPEN_MAX value or the per-
                         process soft descriptor limit is checked.


                      o  EOVERFLOW - One of the values to be
                         returned cannot be represented correctly.

                         The request argument is F_GETLK, F_SETLK,
                         or F_SETLKW and the smallest or, if l_
                         len is nonzero, the largest offset of any
                         byte in the requested segment cannot be
                         represented correctly in an object of type
                         off_t.

                      o  EINTR - The request argument is F_SETLKW,
                         and the function was interrupted by a
                         signal.

                      o  ENOLCK - The request argument is F_SETLK or
                         F_SETLKW, and satisfying the lock or unlock
                         request would exceed the configurable
                         system limit of NLOCK_RECORD.

                      o  ENOMEM - The system was unable to allocate
                         memory for the requested file descriptor.