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. Область памяти будет гарантированно проинициализирована нулями.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКДанный текст является ознакомительным фрагментом.
Читайте также
System V Release 4 (SVR4)
System V Release 4 (SVR4) В 1989 году была выпущена новая основная версия — System V Release 4. По существу она объединила возможности нескольких известных версий UNIX: SunOS фирмы Sun Microsystems, BSD UNIX компании Berkeley Software Distribution и предыдущих версий System V.Новые черты системы включали:? Командные
Кэширование в SVR4
Кэширование в SVR4 Центральной концепцией в архитектуре виртуальной памяти SVR4 является отображение файлов. При этом подходе все адресное пространство может быть представлено набором отображений различных файлов в память. Действительно, в страницы памяти, содержащие
10.15. Реализация с помощью отображения в память
10.15. Реализация с помощью отображения в память Теперь займемся реализацией именованных семафоров Posix с помощью отображаемых в память файлов вместе со взаимными исключениями и условными переменными Posix. Реализация, аналогичная данной, приведена в разделе В.11.3 Обоснования
Почему вообще используется отображение в память?
Почему вообще используется отображение в память? До сих пор мы всегда говорили об отображении в память содержимого файла, который сначала открывается вызовом open, а затем отображается вызовом mmap. Удобство состоит в том, что все операции ввода-вывода осуществляются ядром и
12.4. Неименованное отображение в память в 4.4BSD
12.4. Неименованное отображение в память в 4.4BSD Наши примеры из листингов 12.2 и 12.3 работают отлично, но нам приходится создавать файл в файловой системе (аргумент командной строки), вызывать open, записывать нули в файл вызовом write (чтобы проинициализировать его). Если mmap
Отображение первых или последних записей диапазона с помощью предложения ТОР
Отображение первых или последних записей диапазона с помощью предложения ТОР Ключевое слово ТОР используется для отображения некоторого количества начальных или конечных записей из большого результирующего набора. Для ограничения числа записей в результирующем
ГЛАВА 12. Отображение типов, динамическое связывание и программирование с помощью атрибутов
ГЛАВА 12. Отображение типов, динамическое связывание и программирование с помощью атрибутов Как показано в предыдущей главе, компоновочные блоки являются базовыми элементами установки и среде .NET. С помощью интегрированного обозревателя объектов в Visual Studio 2005 можно
1.1. Отображение предупреждений с помощью UIAlertView
1.1. Отображение предупреждений с помощью UIAlertView Постановка задачи Вы хотите, чтобы у ваших пользователей отобразилось сообщение, которое будет оформлено как предупреждение (Alert). Такие сообщения можно применять, чтобы попросить пользователя подтвердить выбранное
1.17. Отображение статического текста с помощью UILabel
1.17. Отображение статического текста с помощью UILabel Постановка задачи Необходимо отображать для пользователя текст. Кроме того, вы хотели бы управлять шрифтом и цветом этого текста. Статическим называется такой текст, который пользователь не может напрямую изменять во
1.20. Отображение длинных текстовых строк с помощью UITextView
1.20. Отображение длинных текстовых строк с помощью UITextView Постановка задачи Требуется отображать в пользовательском интерфейсе несколько строк текста с возможностью
1.25. Отображение протекания процессов с помощью UIProgressView
1.25. Отображение протекания процессов с помощью UIProgressView Постановка задачи Необходимо отображать на экране индикатор протекания процесса (Progress Bar), отражающий ход выполнения той или иной задачи, например индикатор загрузки файла, скачиваемого c определенного
1.29. Отображение вспомогательных экранов с помощью UIPopoverController
1.29. Отображение вспомогательных экранов с помощью UIPopoverController Постановка задачи Вы хотите отображать на iPad окно с информацией, не занимая при этом целый
Память
Память HeapSize Функция HeapSize возвращает размер блока памяти, выделенного из кучи функциями HeapAlloc или HeapReAlloc , в байтах. DWORD HeapSize ( HANDLE hHeap , // дескориптор кучи DWORD dwFlags , // контрольные флаги размера кучи LPCVOID lpMem // указатель на память, чей размер возвращается ); Параметры hHeap -
СОФТЕРРА: Память на лица, или Лица на память
СОФТЕРРА: Память на лица, или Лица на память Автор: Алексей КлимовВышла девятая версия ACDSee. Судя по объему нововведений, это не «Девятый вал» Айвазовского [Иван Айвазовский, «Девятый вал». 1850 г] и даже не «9 рота» Бондарчука [Федор Бондарчук, «9 рота». 2005 г]. Поэтому в обзоре
4. Память
4. Память Когда вы читаете эту книгу, идете по переполненной улице, слушаете симфонию, успокаиваете плачущего ребенка, ваш мозг набит пространственными и временными паттернами от всех ваших органов чувств. Мир это океан постоянно меняющихся паттернов, которые приходят,