Fcntl
File control operations.
Declaration
Source position: line 0
function Fcntl( |
Fd: LongInt; |
Cmd: LongInt |
):LongInt;
procedure Fcntl( |
Fd: LongInt; |
Cmd: LongInt; |
Arg: LongInt |
);
function Fcntl( |
var Fd: Text; |
Cmd: LongInt |
):LongInt;
procedure Fcntl( |
var Fd: Text; |
Cmd: LongInt; |
Arg: LongInt |
); |
Description
Read a file's attributes. Fd is an assigned file, or a valid file descriptor. Cmd speciefies what to do, and is one of the following:
- F_GetFd
- Read the close_on_exec flag. If the low-order bit is 0, then the file will remain open across execve calls.
- F_GetFl
- Read the descriptor's flags.
- F_GetOwn
- Get the Process ID of the owner of a socket.
- F_SetFd
- Set the close_on_exec flag of Fd. (only the least siginificant bit is used).
- F_GetLk
- Return the flock record that prevents this process from obtaining the lock, or set the l_type field of the lock of there is no obstruction. Arg is a pointer to a flock record.
- F_SetLk
- Set the lock or clear it (depending on l_type in the flock structure). if the lock is held by another process, an error occurs.
- F_GetLkw
- Same as for F_Setlk, but wait until the lock is released.
- F_SetOwn
- Set the Process or process group that owns a socket.
Errors
LinuxError is used to report errors.
- sys_ebadf
- Fd has a bad file descriptor.
- sys_eagain or sys_eaccess
- For F_SetLk, if the lock is held by another process.