Ungültiges Argument für MMAP mit Lese- / Schreibzugriff?

Ich erhalte-EINVAL Aus irgendeinem Grund, und mir ist nicht klar, warum. Hier öffne ich und versuche esmmap die Datei:

if ((fd = open(argv[1], O_RDWR)) < 0)
{
    fprintf(stderr, "Failed to open %s: %s\n", argv[1], strerror(errno));
    return 1;
}

struct stat statbuf;
if (fstat(fd, &statbuf))
{
    fprintf(stderr, "stat filed: %s\n", strerror(errno));
    return 1;
}

char* fbase = mmap(NULL, statbuf.st_size, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
if (fbase == MAP_FAILED)
{
    fprintf(stderr, "mmap failed: %s\n", strerror(errno));
    return 1;
}

EDIT: Ich sollte hinzufügen, dass der Fehler in der auftrittmmap.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage