Das komische ich kann untensehenden Code auf einem SuSE Linux 8.0 (Kernel 2.4) Rechner ausführen (da funktioniert alles perfekt), auf einem Debian woody (Kernel 2.2) Rechner aber nicht!
Da kommt folgende Fehlermeldung:
"Invalid Argument"
bzw.
"Segmentation fault"
Glaube nicht dass es am Unterschied Kernel 2.2 / 2.4 liegt.
Habe den Code jeweils auf beiden Systemen fehlerfrei kompeliert.
Code: Alles auswählen
int *mapping1()
{
int fd_sm;
int *zeiger;
if ( (fd_sm=open("/dev/zero", O_RDWR)) < 0)
printf("kann /dev/zero nicht öffeln!\n");
if ( (zeiger = mmap(0, sizeof(zeiger), PROT_READ | PROT_WRITE, MAP_SHARED, fd_sm, 0)) ==(caddr_t)-1){
printf("mmap fehler!\n");
perror("Rueckmeldung1: \n");
}
close(fd_sm);
return zeiger;
}