Я хочу заблокировать память для физического ОЗУ в C с помощью mlock
и munlock
, но я не уверен в правильном использовании.
Позвольте мне объяснить это шаг за шагом сценарий:
Давайте предположим, что я динамически назначаю указатель, используя calloc
:
char * data = (char *)calloc(12, sizeof(char*));
Должен ли я сделать mlock
сразу после этого?
Давайте также предположим, что Позже я попытаюсь изменить размер блока памяти с помощью realloc
:
(char *)realloc(data, 100 * sizeof(char*));
Обратите внимание, что указанное выше увеличение (100) является случайным, и иногда я уменьшу блок памяти.
Должен ли я сначала сделать munlock
, а затем mlock
снова, чтобы обратиться к внесенным изменениям?
Также, когда я хочу освободить указатель data
позже, я должен munlock
сначала?
Я надеюсь кто-то может объяснить мне правильные шаги, чтобы я мог лучше понять.