У меня есть структура tailq:
struct entry {
int file;
int *map;
int pos;
TAILQ_ENTRY(entry) tailq; /* Tail queue. */
};
И к каждой записи в tailq у меня есть файл mmaped или желание:
#define NUMINTS (1000)
#define FILESIZE (NUMINTS * sizeof(u_int64_t))
struct entry *np;
int result;
if((np = malloc(sizeof(struct entry))) == NULL){
errx(1, "malloc");
}
np->file = open(temp, O_WRONLY | O_CREAT, (mode_t)0600);
if (np->file == -1) {
errx(1, "Error opening file for writing");
}
np->map = mmap(0, FILESIZE, PROT_READ | PROT_WRITE, MAP_SHARED, np->file, 0);
if (np->map == MAP_FAILED) {
close(np->file);
errx(1, "Error mmapping the file");
}
TAILQ_INSERT_TAIL(&tailq_head[thread_id], np, tailq);
Я получаю «Ошибка при отображении файла», почему?