Ваш пример кода вообще не содержит memset
, только malloc
и mmap
?
Я предполагаю, что почему mmap
терпит неудачу в том, что дескриптор файла ссылается на кадровый буфер (контекст подсказывает, как из имени переменной frame_buffer
, так и из дескриптора файла fb
), и у вас есть комбинация «выделено больше, чем кадровый буфер», «выделена комбинация разрешения / флаг, которая не нравится драйверу» и «какая-то другая неясная причина».
Отображение кадрового буфера или памяти любого другого устройства не столь же тривиально, как отображение нормальной памяти или файла (ну, в некотором роде, но, опять же, нет), может быть много более очевидных и менее очевидные причины, по которым это может не сработать.
Первая очевидная вещь, на которую стоит обратить внимание, это то, что ваше текущее разрешение экрана в байтах на пиксель составляет в целом 3840000. Если этого не произойдет, вы вне пределов.