| [Overview][Constants][Types][Procedures and functions][Index] | 
Create memory map of a file
Source position: bunxh.inc line 107
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.