FpOpen
Open file and return file descriptor
Declaration
Source position: bunxh.inc line 75
function FpOpen(path: pChar; flags: cint; Mode: TMode) : cint;
function FpOpen(path: pChar; flags: cint) : cint;
function FpOpen(const path: RawByteString; flags: cint) : cint;
function FpOpen(const path: RawByteString; flags: cint; Mode: TMode)
: cint;
function FpOpen(path: ShortString; flags: cint) : cint;
function FpOpen(path: ShortString; flags: cint; Mode: TMode) : cint;
Description
FpOpen opens a file in Path with flags flags and mode Mode One of the following:
- O_RdOnly
- File is opened Read-only
- O_WrOnly
- File is opened Write-only
- O_RdWr
- File is opened Read-Write
The flags may beOR-ed with one of the following constants:
- O_Creat
- File is created if it doesn't exist.
- O_Excl
- If the file is opened with O_Creat and it already exists, the call will fail.
- O_NoCtty
- If the file is a terminal device, it will NOT become the process' controlling terminal.
- O_Trunc
- If the file exists, it will be truncated.
- O_Append
- the file is opened in append mode. Before each write, the file pointer is positioned at the end of the file.
- O_NonBlock
- The file is opened in non-blocking mode. No operation on the file descriptor will cause the calling process to wait till.
- O_NDelay
- Idem as O_NonBlock
- O_Sync
- The file is opened for synchronous IO. Any write operation on the file will not return until the data is physically written to disk.
- O_NoFollow
- if the file is a symbolic link, the open fails. (Linux 2.1.126 and higher only)
- O_Directory
- if the file is not a directory, the open fails. (Linux 2.1.126 and higher only)
Path can be of type PChar or String. The optional mode argument specifies the permissions to set when opening the file. This is modified by the umask setting. The real permissions are Mode and not umask. The return value of the function is the file descriptor, or a negative value if there was an error.
Errors
Extended error information can be retrieved using fpGetErrno .
See also
Name | Description |
---|---|
FpClose | Close file descriptor |
FpFTruncate | Truncate file on certain size. |
FpLSeek | Set file pointer position. |
FpRead | Read data from file descriptor |
FpWrite | Write data to file descriptor |
Example
Program Example19;
{ Program to demonstrate the fpOpen, fpwrite and fpCLose functions. }
Uses BaseUnix;
Const Line : String[80] = 'This is easy writing !';
Var FD : Cint;
begin
FD:=fpOpen ('Test.dat',O_WrOnly or O_Creat);
if FD>0 then
begin
if length(Line)<>fpwrite (FD,Line[1],Length(Line)) then
Writeln ('Error when writing to file !');
fpClose(FD);
end;
end.