[Overview][Constants][Types][Procedures and functions][Variables][Index] |
Create memory map of a file
Source position: oldlinux.pp line 1545
function MMap( |
const m: tmmapargs |
):LongInt; |
MMap maps or unmaps files or devices into memory. The different fields of the argument m determine what and how the mmap maps this:
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 LinuxError is set to the error code:
|
Unmap previously mapped memory block |
Program Example66; { Program to demonstrate the MMap function. } Uses oldlinux; Var S : String; fd,Len : Longint; args : tmmapargs; P : PChar; begin S:='This is a string'#0; Len:=Length(S); fd:=fdOpen('testfile.txt',Open_wrOnly or open_creat); If fd=-1 then Halt(1); If fdWrite(fd,S[1],Len)=-1 then Halt(2); fdClose(fd); fdOpen('testfile.txt',Open_rdOnly); if fd=-1 then Halt(3); args.address:=0; args.offset:=0; args.size:=Len+1; args.fd:=Fd; args.flags:=MAP_PRIVATE; args.prot:=PROT_READ or PROT_WRITE; P:=Pchar(mmap(args)); If longint(P)=-1 then Halt(4); Writeln('Read in memory :',P); fdclose(fd); if Not MUnMap(P,Len) Then Halt(LinuxError); end.
lazarus-ccr.sourceforge.net |