[ Страница назад | Страница вперед | Содержание | Индекс | Библиотека | Юридическая информация | Поиск ]

Программирование: Разработка и отладка программ


Создание отображенного файла с записью по команде с помощью функции shmat

Предварительные требования

Отображаемый файл должен быть обычным файлом.

Процедура

  1. Откройте (или создайте) файл и сохраните его дескриптор:

    if( ( fildes = open( имя-файла , 2 ) ) < 0 )
    {
            printf( "ошибка открытия файла\n" );
            exit(1);
    }
    
  2. Отобразите файл в сегмент в режиме записи по команде с помощью функции shmat:

    file_ptr = shmat( fildes, 0, SHM_COPY );
    

    Константа SHM_COPY определена в файле /usr/include/sys/shm.h. Эта константа указывает, что файл - отображенный с записью по команде. С помощью следующей директивы подключите этот файл и другие файлы заголовков для работы с общей памятью:

    #include <sys/shm.h>
    
  3. Считайте, что file_ptr указывает на начало файла данных, и работайте с данными так, как будто они расположены в памяти.

    while ( file_ptr < eof)
    {
          .
          .
          .
          (работа с файлом через указатель file_ptr)
    }
    
  4. Для записи внесенных в файл изменений на диск применяйте функцию fsync:

    fsync( fildes );
    
  5. Закройте файл, когда программа завершит работу с ним:

    close (fildes );
    

Связанная информация

Отображение файлов с помощью процедуры shmat.

Создание отображенных файлов данных с помощью функции shmat.

Функции shmat, shmctl, shmdt, shmget.


[ Страница назад | Страница вперед | Содержание | Индекс | Библиотека | Юридическая информация | Поиск ]