[Overview][Constants][Types][Procedures and functions][Index] Reference for unit 'BaseUnix' (#rtl)

FpRead

Read data from file descriptor

Declaration

Source position: bunxh.inc line 85

function FpRead(

  fd: cint;

  buf: pChar;

  nbytes: TSize

):TsSize;

function FpRead(

  fd: cint;

  var buf;

  nbytes: TSize

):TsSize;

Description

FpdRead reads at most nbytes bytes from the file descriptor fd, and stores them in buf.

The function returns the number of bytes actually read, or -1 if an error occurred. No checking on the length of buf is done.

Errors

Extended error information can be retrieved using fpGetErrno.

See also

FpOpen

  

Open file and return file descriptor

FpClose

  

Close file descriptor

FpWrite

  

Write data to file descriptor

FpFTruncate

  

Truncate file on certain size.

FpLSeek

  

Set file pointer position.

Example

Program Example20;

{ Program to demonstrate the fdRead and fdTruncate functions. }

Uses BaseUnix;

Const Data : string[10] = '1234567890';

Var FD : cint;
    l : longint;

begin
  FD:=fpOpen('test.dat',o_wronly or o_creat,&666);
  if fd>0 then
    begin
    { Fill file with data }
    for l:=1 to 10 do
      if fpWrite (FD,Data[1],10)<>10 then
        begin
        writeln ('Error when writing !');
        halt(1);
        end;
    fpClose(FD);
    FD:=fpOpen('test.dat',o_rdonly);
    { Read data again }
    If FD>0 then
      begin
      For l:=1 to 5 do
        if fpRead (FD,Data[1],10)<>10 then
          begin
          Writeln ('Error when Reading !');
          Halt(2);
          end;
      fpClose(FD);
      { Truncating file at 60 bytes }
      { For truncating, file must be open or write }
      FD:=fpOpen('test.dat',o_wronly,&666);
      if FD>0 then
        begin
        if fpfTruncate(FD,60)<>0 then
           Writeln('Error when truncating !');
        fpClose (FD);
        end;
      end;
    end;
end.

Documentation generated on: May 14 2021