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.