Примеры

Примеры

Создадим объект разделяемой памяти с именем /tmp/myshm объемом 123 456 байт в системе Digital Unix 4.0B:

alpha % shmcreate /tmp/myshm 123456

alpha % ls –l /tmp/myshm

-rw-r--r-- 1 rstevens system 123456 Dec 10 14:33 /tmp/myshm

alpha % od –c /tmp/myshm

0000000

*

0361100

Мы видим, что файл с указываемым при создании объекта разделяемой памяти именем появляется в файловой системе. Используя программу od, мы можем выяснить, что после создания файл целиком заполнен нулями (восьмеричное число 0361100 — сдвиг, соответствующий байту, следующему за последним байтом файла, — эквивалентно десятичному 123 456).

Запустим программу shmwrite и убедимся в правильности записываемых значений с помощью программы od:

alpha % shmwrite /tmp/myshm

alpha * od –x /tmp/myshm | head-4

0000000 0100 0302 0504 0706 0908 0b0a 0d0c 0f0e

0000020 1110 1312 1514 1716 1918 1b1a 1d1c 1f1e

0000040 2120 2322 2524 2726 2928 2b2a 2d2c 2f2e

0000060 3130 3332 3534 3736 3938 3b3a 3d3c 3f3e

alpha % shmread /tmp/myshm

alpha % shmunlink /tmp/myshm

Мы проверили содержимое разделяемой памяти и с помощью shmread, а затем удалили объект, запустив программу shmunlink.

Если теперь мы запустим программу shmcreate в Solaris 2.6, то увидим, что файл указанного размера создается в каталоге /tmp:

solaris % shmcreate –e /testshm 123

solaris % ls-l/tmp/.*testshm*

-rw-r--r-- 1 rstevens other1 123 Dec 10 14:40 /tmp/.SHMtestshm

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

8.4.1 Примеры

Из книги C++ автора Хилл Мюррей

8.4.1 Примеры Описаниеint i; int *pi; int f (); int *fpi (); int (*pif) ();описывает целое i, указатель pi на целое, функцию f, возвращающую целое, функцию fpi , возвращающую указатель на целое, и указатель pif на функцию, возвращающую целое. Осбенно полезно сравнить последние две. Цепочка *fpi() есть *(fpi()),


5.12.5 Примеры

Из книги Архитектура операционной системы UNIX автора Бах Морис Дж

5.12.5 Примеры Программа на Рисунке 5.18 иллюстрирует искусственное использование каналов. Процесс создает канал и входит в бесконечный цикл, записывая в канал строку символов «hello» и считывая ее из канала. Ядру не нужно ни знать о том, что процесс, ведущий запись в канал,


* ПРИМЕРЫ *

Из книги Справочное руководство по C++ автора Страустрап Бьярн

* ПРИМЕРЫ * b1_1_1.cxx #include ‹stream.hxx›main(){ cout ‹‹ "Hello, world ";}


Примеры

Из книги Эффективное использование STL автора Мейерс Скотт

Примеры Книга содержит множество примеров. Все примеры комментируются по мере их приведения, и все же кое-что следует пояснить заранее.Из приведенного выше примера с map видно, что я обычно опускаю директивы #include и игнорирую тот факт, что компоненты STL принадлежат


Примеры

Из книги UNIX: взаимодействие процессов автора Стивенс Уильям Ричард

Примеры Теперь воспользуемся четырьмя только что написанными программами. Создадим очередь и поместим в нее три сообщения:solaris % msgcreate /tmp/no/such/fileftok error for pathname "tmp/no/such/file" and id 0: No such file or directorysolaris % touch /trap/test1solaris % msgcreate /tmp/test1solaris % msgsnd /tmp/test1 1 100solaris % msgsnd /tmp/test1 2 200solaris % msgsnd /tmp/test1 3


10.5. Простые примеры

Из книги TCP/IP Архитектура, протоколы, реализация (включая IP версии 6 и IP Security) автора Фейт Сидни М

10.5. Простые примеры В этом разделе мы напишем несколько простых программ, работающих с именованными семафорами Posix. Эти программы помогут нам узнать особенности функционирования и реализации семафоров. Поскольку именованные семафоры Posix обладают по крайней мере


Примеры

Из книги Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ автора Борри Хелен

Примеры Для начала мы создадим именованный семафор в Digital Unix 4.0B и выведем его значение, устанавливаемое по умолчанию при инициализации:alpha % semcreate /tmp/test1alpha % ls-l /tmp/test1-rw-r--r-- 1 rstevens system 264 Nov 13 08:51 /tmp/test1alpha %semgetvalue /tmp/test1value = 1Аналогично очередям сообщений Posix система создает файл


Примеры

Из книги Введение в QNX/Neutrino 2. Руководство по программированию приложений реального времени в QNX Realtime Platform автора Кёртен Роб

Примеры Теперь мы продемонстрируем работу пяти приведенных выше программ и исследуем некоторые свойства семафоров System V:solaris % touch /tmp/richsolaris % semcreate –e /tmp/rich 3solaris % semsetvalues /tmp/rich 1 2 3solaris % semgetvalues /tmp/richsemval[0] = 1semval[1] = 2semval[2] = 3Сначала мы создали файл с именем /tmp/rich, который


Примеры

Из книги Язык Си - руководство для начинающих автора Прата Стивен

Примеры Создадим объект разделяемой памяти с именем /tmp/myshm объемом 123 456 байт в системе Digital Unix 4.0B:alpha % shmcreate /tmp/myshm 123456alpha % ls –l /tmp/myshm-rw-r--r-- 1 rstevens system 123456 Dec 10 14:33 /tmp/myshmalpha % od –c /tmp/myshm0000000 *0361100Мы видим, что файл с указываемым при создании объекта разделяемой памяти


Примеры

Из книги Linux и UNIX: программирование в shell. Руководство разработчика. автора Тейнсли Дэвид

Примеры Создадим сегмент разделяемой памяти длиной 1234 байта в системе Solaris 2.6. Для идентификации сегмента используем полное имя нашего исполняемого файла shmget. Это имя будет передано функции ftok. Имя исполняемого файла сервера часто используется в качестве уникального


15.7. Примеры

Из книги автора

15.7. Примеры В этом разделе мы приведем примеры использования пяти только что описанных


12.18 Примеры

Из книги автора

12.18 Примеры Некоторые реализации программы nslookup позволяют рассмотреть сообщения более подробно. Ниже приводится результат запуска nslookup на хосте Йельского университета и указывается вывод детальной отладочной информации с помощью команды set d2.Запрос требовал


Примеры

Из книги автора

Примеры Этот оператор устанавливает новое значение по умолчанию для домена BOOK_GROUP:ALTER DOMAIN BOOK_GROUP SET DEFAULT -1;В следующем операторе имя домена BOOK_GROUP заменяется на PUBL_GROUP:ALTER DOMAIN BOOK_GROUP TO


Примеры

Из книги автора

Примеры Этот раздел — своего рода «кулинарная книга» для программистов. Здесь я приведу ряд готовых примеров, которые вы сможете непосредственно использовать в качестве базиса для ваших проектов. Это не совсем готовые администраторы ресурсов — вы должны будете


ПРИМЕРЫ

Из книги автора

ПРИМЕРЫ while(n++ < 100) printf(" %d %d ",n, 2*n + 1);while(fargo < 1000){ fargo = fargo + step;   step = 2 * step;}     В нашем последнем примере в цикле while используется "неопределенное" условие: мы не знаем заранее, сколько раз выполнится тело цикла перед тем, как выражение станет ложным. Во многих наших