Книга: UNIX: взаимодействие процессов
12.5. Отображение в память в SVR4 с помощью /dev/zero
12.5. Отображение в память в SVR4 с помощью /dev/zero
В листинге 12.5 приведена часть новой версии программы, претерпевшая изменения по сравнению с листингом 12.2 при переходе к использованию отображения с помощью /dev/zero.
Листинг 12.5. Отображение памяти в SVR4 с помощью /dev/zero
//shm/incr_dev_zero.c
3 int
4 main(int argc char **argv)
5 {
6 int fd, i, nloop;
7 int *ptr;
8 sem_t *mutex;
9 if (argc != 2)
10 err_quit("usage: incr_dev_zero <#loops>");
11 nloop = atoi(argv[1]);
12 /* открываем /dev/zero и отображаем в память */
13 fd = Open("/dev/zero", O_RDWR);
14 ptr = Mmap(NULL, sizeof(int), PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
15 Close(fd);
6-11 Автоматическая переменная zero больше не используется, как и аргумент командной строки, задававший имя создаваемого файла.
12-15 Мы открываем файл /dev/zero и передаем его дескриптор функции mmap. Область памяти будет гарантированно проинициализирована нулями.
- 12.5. Отображение в память в SVR4 с помощью
- Листинг 10.1. (simpleid.c) Отображение идентификаторов пользователя и группы
- Повышение производительности приложений с помощью хранимых процедур
- Тестирование Web-сервиса XML с помощью WebDev.WebServer.exe
- Организация пользователей в группы с помощью ролей
- Видеопамять
- 7.3.2. EEPROM и флэш-память
- Что хранит в себе оперативная память
- ЧАСТЬ 4 РАЗДЕЛЯЕМАЯ ПАМЯТЬ
- Обработка запросов с помощью PHP
- Глава 8 Оперативная память
- Кэш-память ЦП