Отображаемый файл должен быть обычным файлом.
Создание отображенного файла - процесс, состоящий из двух этапов. Сначала нужно создать отображенный файл. Затем необходимо разработать метод определения конца файла, так как процедура shmat не поддерживает эту функцию.
if( ( fildes = open( filename , 2 ) ) < 0 ) { printf( "не удалось открыть файл\n" ); exit(1); }
file_ptr=shmat (fildes, 0, SHM_MAP);
Константа SHM_MAP определена в файле /usr/include/sys/shm.h. Эта константа указывает, что файл - отображенный. С помощью следующей директивы подключите этот файл и другие файлы заголовков для работы с общей памятью:
#include <sys/shm.h>
eof = file_ptr + lseek(fildes, 0, 2);
В этом примере значение eof устанавливается равным адресу конца файла + 1. Применяйте это значение в качестве маркера конца файла.
while ( file_ptr < eof) { . . . (работа с файлом через указатель file_ptr) }
Примечание:Процедуры read и write могут работать с отображенными файлами, при этом будут получены те же результаты, что и при работе через указатели.
close (fildes );
Отображение файлов с помощью процедуры shmat.
Создание отображенного файла с записью по команде с помощью функции shmat.
Функции shmat, shmctl, shmdt, shmget.