3805
Комментарий:
|
3656
|
Удаления помечены так. | Добавления помечены так. |
Строка 4: | Строка 4: |
{{attachment:911.jpg}} |
|
Строка 10: | Строка 7: |
Строка 14: | Строка 9: |
Имя (нигде не отражается) Флаги Режим открытия Какие-то дополнительные параметры |
* Имя (нигде не отражается) * Флаги * Режим открытия * Какие-то дополнительные параметры |
Строка 26: | Строка 18: |
Строка 29: | Строка 19: |
Строка 34: | Строка 22: |
Строка 37: | Строка 23: |
Строка 44: | Строка 28: |
2. строчка сообщения | 2. строчка сообщения |
Строка 48: | Строка 32: |
4. приоритет | 4. приоритет |
Строка 54: | Строка 36: |
Строка 57: | Строка 37: |
Строка 64: | Строка 40: |
Строка 67: | Строка 41: |
Строка 72: | Строка 44: |
Строка 75: | Строка 45: |
Строка 80: | Строка 48: |
Вот таким способом очередь можно удалить: | |
Строка 81: | Строка 50: |
Вот таким способом очередь можно удалить: {{attachment:6.jpg}} |
{{attachment:6.jpg}} |
Строка 98: | Строка 60: |
Строка 101: | Строка 61: |
Строка 106: | Строка 64: |
Строка 109: | Строка 65: |
Строка 114: | Строка 68: |
{{attachment:8.jpg}} |
{{attachment:8.jpg}} |
Строка 122: | Строка 72: |
Код будет примерно похожий: | |
Строка 123: | Строка 74: |
Код будет примерно похожий: {{attachment:9.jpg}} |
{{attachment:9.jpg}} |
Строка 134: | Строка 78: |
Строка 137: | Строка 79: |
Строка 142: | Строка 82: |
Строка 145: | Строка 83: |
Строка 150: | Строка 86: |
Сообщения - это произвольного размера набор байтов, который передаётся системой между процессами. Они хранятся в очереди.
Они бывают разного приоритета и очередь тоже, соответственно, приорететная.
Чтобы создать объект, который будет работать очередью сообщений нужно сделать системный вызов (вернее его оболочку) - MQ_OPEN()
Туда передаётся 4 параметра:
- Имя (нигде не отражается)
- Флаги
- Режим открытия
- Какие-то дополнительные параметры
Программа короткая, обычно певерх добавляется много проверок, но обычно в линуксе поверх есть стандартная виртуальная файловая система, то есть нечто что можно смонтировать с помощью mount и показывает какое-то состояние системы.
Как вызывать данную программу:
Как послать сообщение: Надо открыть очередь на запись и послать сообщение с помощью вызова MQ_SEND у которого 4 параметра:
1. очередь, которую нужно посылать
2. строчка сообщения
3. длина сообщения
4. приоритет
Приоритет - число, которое сем больше, тем приоритет выше.
Программа, которая читает сообщения выглядит примерно так:
Теперь модифицируем программу, чтобы это сообщение печаталось:
И вот какой вывод мы получим:
Вот таким способом очередь можно удалить:
Системный взов NMAP имеет несолько параметров:
Месть в памяти куда будет происходить отображение
Размер
Как именно мы эту память защищаем
Вызов STAT из дескриптора файла может получить разную иннформацию, например его длину, его хозяина и т.д.
Следующая программа открывает файл, определяет его разиер, мапит его в ыайл, а потомы выводит на стандартный вывод его содержимое. Такой cat, который работает с файлом целиком.
Давайте его скомпилируем:
Shared memory object - В отличии от очереди это просто память в которую можно просто что-либо класть и считывать
Код будет примерно похожий:
Запустим его:
Программа, которая пишет в эту память:
Запустим её: