Pascal / BaseUnix / Fpmmap
FpAccess, FpAlarm, FpChdir, FpChmod, FpChown, FpClose, FpClosedir, FpDup, FpDup2, FpExecv, FpExecve, FpExit, FpFcntl, pfdfillset, fpFD_CLR, fpFD_ISSET, fpFD_SET, fpFD_ZERO, FpFork, FPFStat, FpFtruncate, FpGetcwd, FpGetegid, FpGetEnv, fpgeterrno, FpGeteuid, FpGetgid, FpGetgroups, FpGetpgrp, FpGetpid, FpGetppid, fpGetPriority, FpGetuid, FpIOCtl, FpKill, FpLink, FpLseek, fpLstat, FpMkdir, FpMkfifo, » Fpmmap, Fpmunmap, FpNanoSleep, fpNice, FpOpen, FpOpendir, FpPause, FpPipe, FpRead, FpReaddir, fpReadLink, FpRename, FpRmdir, fpSelect, fpseterrno, FpSetgid, fpSetPriority, FpSetsid, fpsettimeofday, FpSetuid,
Funcion: Fpmmap()
Sintaxis:
Descripcion: mapea o desmapea archivos o dispositivos en memoria. Los diferentes argumentos determinan que y como el archivo es mapeado:
adr
Address where to mmap the device. This address is a hint, and may not be followed.
len
Size (in bytes) of area to be mapped.
prot
Protection of mapped memory. This is a OR-ed combination of the following constants:
PROT_EXEC
The memory can be executed.
PROT_READ
The memory can be read.
PROT_WRITE
The memory can be written.
PROT_NONE
The memory can not be accessed.
flags
Contains some options for the mmap call. It is an OR-ed combination of the following constants:
MAP_FIXED
Do not map at another address than the given address. If the address cannot be used, MMap will fail.
MAP_SHARED
Share this map with other processes that map this object.
MAP_PRIVATE
Create a private map with copy-on-write semantics.
MAP_ANONYMOUS
fd does not have to be a file descriptor.
One of the options MAP_SHARED and MAP_PRIVATE must be present, but not both at the same time.
fd
File descriptor from which to map.
off
Offset to be used in file descriptor fd.
The function returns a pointer to the mapped memory, or a -1 in case of en error.
ERRORES:
Cuando un error suceda, la funcion retorna -1. mas informacoin se puede obtener con la funcion FpGetErrno
Sys_EBADF
fd is not a valid file descriptor and MAP_ANONYMOUS was not specified.
Sys_EACCES
MAP_PRIVATE was specified, but fd is not open for reading. Or MAP_SHARED was asked and PROT_WRITE is set, fd is not open for writing
Sys_EINVAL
One of the record fields Start, length or offset is invalid.
Sys_ETXTBUSY
MAP_DENYWRITE was set but the object specified by fd is open for writing.
Sys_EAGAIN
fd is locked, or too much memory is locked.
Sys_ENOMEM
Not enough memory for this operation.
Vea tambien
FpMUnMap
Ejemplo:
Sintaxis:
function Fpmmap( start: pointer; len: size_t; prot: cInt; flags: cInt; fd:
Descripcion: mapea o desmapea archivos o dispositivos en memoria. Los diferentes argumentos determinan que y como el archivo es mapeado:
adr
Address where to mmap the device. This address is a hint, and may not be followed.
len
Size (in bytes) of area to be mapped.
prot
Protection of mapped memory. This is a OR-ed combination of the following constants:
PROT_EXEC
The memory can be executed.
PROT_READ
The memory can be read.
PROT_WRITE
The memory can be written.
PROT_NONE
The memory can not be accessed.
flags
Contains some options for the mmap call. It is an OR-ed combination of the following constants:
MAP_FIXED
Do not map at another address than the given address. If the address cannot be used, MMap will fail.
MAP_SHARED
Share this map with other processes that map this object.
MAP_PRIVATE
Create a private map with copy-on-write semantics.
MAP_ANONYMOUS
fd does not have to be a file descriptor.
One of the options MAP_SHARED and MAP_PRIVATE must be present, but not both at the same time.
fd
File descriptor from which to map.
off
Offset to be used in file descriptor fd.
The function returns a pointer to the mapped memory, or a -1 in case of en error.
ERRORES:
Cuando un error suceda, la funcion retorna -1. mas informacoin se puede obtener con la funcion FpGetErrno
Sys_EBADF
fd is not a valid file descriptor and MAP_ANONYMOUS was not specified.
Sys_EACCES
MAP_PRIVATE was specified, but fd is not open for reading. Or MAP_SHARED was asked and PROT_WRITE is set, fd is not open for writing
Sys_EINVAL
One of the record fields Start, length or offset is invalid.
Sys_ETXTBUSY
MAP_DENYWRITE was set but the object specified by fd is open for writing.
Sys_EAGAIN
fd is locked, or too much memory is locked.
Sys_ENOMEM
Not enough memory for this operation.
Vea tambien
FpMUnMap
Ejemplo:
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.
Librerias Pascal
Libreria crt - CRT - Pantalla y teclado del PASCAL de Turbo que maneja la unidadLibreria dos - DOS - Interface Turbo Pascal MS-DOS
Libreria Graph - Unidad para manipular los graficos de la pantalla compatible con TP
Libreria Objects - Objetos basicos compatible con TP
Libreria math - Rutinas adicionales matematicas
Libreria Printer - Provee de acceso a la impresora
Libreria strings - Rutinas para el manejo de cadenas
Libreria BaseUnix - Funcionalidad Basica de Linux
Libreria System - Manejo de Archivos - Funciones para la manipulacion de archivos en Pascal