[fpc-pascal] fpMMap and FreeBSD
Xromov Kirill
volgaboatman at mail.ru
Thu Apr 21 17:00:10 CEST 2005
Hello fpc-pascal,
I try to use fpMMap function to access file data under FreeBSD 5.3-RELEASE
with fpc-1.9.8. But code from examle
(http://www.freepascal.org/docs-html/rtl/baseunix/fpmmap.html) not working.
P:=Pchar(fpmmap(nil,len+1 ,PROT_READ or PROT_WRITE,MAP_PRIVATE,fd,0));
If longint(P)=-1 then Halt(4);
// At this P is normal pointer like (0x291ad000).
Writeln('Read in memory :',P);
and at this point: Program received signal SIGBUS, Bus error.
And strange moment. Another example in C work OK.
---
if ((src = mmap (0, statbuf.st_size, PROT_READ, MAP_SHARED, fdin, 0)) == (caddr_t) -1)
perror ("mmap error for input");
/* mmap the output file */
if ((dst = mmap (0, statbuf.st_size, PROT_READ | PROT_WRITE,
MAP_SHARED, fdout, 0)) == (caddr_t) -1)
perror ("mmap error for output");
/* this copies the input file to the output file */
memcpy (dst, src, statbuf.st_size);
---
--
Best regards,
Xromov mailto:volgaboatman at mail.ru
More information about the fpc-pascal
mailing list