Где хранится строка, которую возвращает mmap(2)?

И нужно ли освобождать память по этому указателю с помощью free()?

char *ptr = mmap(NULL, fileLength, PROT_READ, MAP_PRIVATE, input, 0);
  • Вопрос задан
  • 392 просмотра
Пригласить эксперта
Ответы на вопрос 1
@MiiNiPaa
Почему бы не почитать документацию.
man7.org/linux/man-pages/man2/mmap.2.html

1) mmap не возвращает строку. Он возвращает указатель на начало замапленой области (void*).

2) Освобождать область не обязательно, она освободится, когда процесс будет завершён. Но если хочется, есть unmap.

3) Вызывать free на чём-нибудь не выделеным malloc категорически нельзя.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы