Ожидание устройства или файла

Здесь и далее для краткости я буду приводить фрагменты программ, в которых не выполняются проверки на ошибки. Часто для того, чтобы начать работу с устройством или файлом, надо дождаться пока это устройство или файл будут инициализированы. Читать далее «Ожидание устройства или файла»

Запуск от имени другого пользователя

В принципе, в этом нет ничего сложного или нового. Просто получаем идентификатор пользователя и его группы с помощью стандартных для UNIX вызовов getpwnam(), setuid(), setgid() и initgroups(). Последний вызов в этом примере не используется. Для выполнения этого примера нужны права администратора. Читать далее «Запуск от имени другого пользователя»

Каталог измененных файлов ‘spill’

Операция переадресации на файл, расположенный внутри пакета, выполняется до тех пор, пока осуществляется доступ к файлу только для чтения. Но как только выполняется операция записи в такой файл, управляемый пакетной файловой системой, к работе подключается каталог ‘spill’. Читать далее «Каталог измененных файлов ‘spill’»

Rwlocks

С помощью блокирующего механизма, rwlocks, сделать это несложно. В отличие от мутексов, rwlock может иметь два состояния блокировки: чтение и запись. Читать далее «Rwlocks»

Разделение файловых дескрипторов между процессами 

В традиционных Unix системах существует редко используемая, но довольно удобная возможность передавать файловый дескриптор между процессами с помощью Unix domain sockets (uds). Читать далее «Разделение файловых дескрипторов между процессами »

Запуск на удаленном узле QNX сети

Запуск на удаленном узле — это одна из ключевых возможностей утилиты on. Для этого используется тот же вызов spawn(), что и в предыдущих примерах. В структуре inheritance предусмотрено специальное поле для дескриптора удаленного узла — nd. Читать далее «Запуск на удаленном узле QNX сети»

Беседа с незнакомцем

В данном примере мы рассмотрим, как процесс-клиент A может использовать какой-либо канал связи (локальный канал (pipe), сокет, совместно используемую память, собственный IPC, почтового голубя) с другим процессом-клиентом B для передачи ему пакета данных, содержащего достаточно информации для того, чтобы B смог обратится к процессу-серверу для дублирования файлового дескриптора в своем адресном пространстве. Читать далее «Беседа с незнакомцем»

Установка Parrot 0.1.1 под Windows

Почти каждый раз с появлением новой версии дистрибутива Parrot приходится выдумывать новые хитрости для его успешной установки под Windows. Уверен, что если загрузиться, например, во FreeBSD, то процесс пройдет гладко. Но уж очень хочется получить работающий Parrot именно под Windows. К сожалению, файл README.win32 помогает не во всем. Читать далее «Установка Parrot 0.1.1 под Windows»