Create memory map of a file.
Source position: bunxh.inc line 112
function Fpmmap( |
start: pointer; |
len: size_t; |
prot: cint; |
flags: cint; |
fd: cint; |
offst: off_t |
):pointer; |
FpMMap maps or unmaps files or devices into memory. The different arguments determine what and how the file is mapped:
Protection of mapped memory. This is a OR-ed combination of the following constants:
Contains some options for the mmap call. It is an OR-ed combination of the following constants:
One of the options MAP_SHARED and MAP_PRIVATE must be present, but not both at the same time.
The function returns a pointer to the mapped memory, or a -1 in case of en error.
On error, -1 is returned and extended error information is returned by the FpGetErrno function.
|
Unmap previously mapped memory block. |
Program Example66; { Program to demonstrate the MMap function. } Uses BaseUnix,Unix; Var S : String; fd : cint; Len : longint; // args : tmmapargs; P : PChar; begin s:='This is the string'; Len:=Length(S); fd:=fpOpen('testfile.txt',O_wrOnly or o_creat); If fd=-1 then Halt(1); If fpWrite(fd,S[1],Len)=-1 then Halt(2); fpClose(fd); fd:=fpOpen('testfile.txt',O_rdOnly); if fd=-1 then Halt(3); P:=Pchar(fpmmap(nil,len+1 ,PROT_READ or PROT_WRITE,MAP_PRIVATE,fd,0)); If longint(P)=-1 then Halt(4); Writeln('Read in memory :',P); fpclose(fd); if fpMUnMap(P,Len)<>0 Then Halt(fpgeterrno); end.