Операции, не поддерживаемые POSIX
Операции, не поддерживаемые POSIX
В native QNX API есть ряд функций работы с мьютексом, которые не определены POSIX-стандартом, однако они могут оказаться весьма полезными. Поскольку тип POSIX-мьютекса порождается от sync_t, то вполне возможно использование комбинации функций, определенных POSIX, и «родных» native-функций QNX. Однако необходимо помнить, что в таком случае ни о какой межсистемной совместимости говорить уже не приходится.
Восстановление «мертвого» мьютекса
#include <sys/neutrino.h>
int SyncMutexRevive(sync_t* sync);
int SyncMutexRevive_r(sync_t* sync);
Эти функции[36] предназначены для восстановления мьютекса, который находится в состоянии блокирования DEAD. Мьютекс попадает в состояние DEAD, когда память, использованная при захвате мьютекса, освобождается. Такое может произойти, например, когда умирает поток, захвативший мьютекс, расположенный в разделяемой памяти. В результате вызова вызвавший поток становится владельцем мьютекса, и его счетчик захватов устанавливается в 1 для рекурсивного мьютекса.
Ошибки выполнения функции:
ЕFAULT — ошибка при обращении к указанным в аргументах переменным;
EINVAL — указанный объект синхронизации не существует или не находится в состоянии DEAD;
ETIMEDOUT — отмена вызова по тайм-ауту ядра (устанавливается вызовом TimerTimeout()).
Установка уведомления о «смерти» мьютекса
Определить состояние мьютекса как DEAD можно с помощью функции SyncMutexEvent(), которая определяет событие, связанное со «смертью» мьютекса.
#include <sys/neutrino.h>
int SyncMutexEvent(sync_t* sync, struct sigevent* event);
int SyncMutexEvent_r(sync_t* sync, struct sigevent* event);
Данная функция предназначена для установки обработчика ситуации, когда мьютекс попадает в состояние DEAD (то есть перераспределяется память, из которой произошел захват мьютекса). Захватить мьютекс, оказавшийся в состоянии DEAD, можно далее с помощью вызова функции SyncMutexRevive().
Ошибки выполнения функции:
EAGAIN — в данный момент ядро не имеет ресурсов для обработки запроса;
EFAULT — ошибка произошла при попытке обращения к sync;
EINVAL — объект синхронизации, на который указывает sync, не существует.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКДанный текст является ознакомительным фрагментом.
Читайте также
API, POSIX и библиотека С
API, POSIX и библиотека С Обычно прикладные программы не разрабатываются с непосредственным использованием системных вызовов, при этом используются программные интерфейсы приложений (Application Programing Interface, API). Это является важным, так как в таком случае нет необходимости в
POSIX (BSD) API
POSIX (BSD) API Эта часть API наиболее полно соответствует API ОС UNIX, относящихся к ветви BSD (BSD, FreeBSD, NetBSD и другие).[5] Ее наименование можно было бы сузить до «BSD API», так как описанный далее набор API System V также регламентируется POSIX, но мы будем использовать именно термин «POSIX API», следуя
6.2. Интерфейсы POSIX
6.2. Интерфейсы POSIX 6.2.1. Обязательные типы POSIX POSIX описывает некоторые определения типов в заголовочном файле <sys/types.h>, которые используются для многих аргументов и возвращаемых значений. Эти определения типов важны, потому что стандартные типы языка С могут быть разными
IEEE и POSIX
IEEE и POSIX В 1980 году была создана инициативная группа под названием /usr/group с целью стандартизации программного интерфейса UNIX, т. е. формального определения услуг, предоставляемых операционной системой приложениям. Решение этой задачи упростило бы переносимость приложений
Поддерживаемые платформы
Поддерживаемые платформы Мы стараемся сделать LFS как можно более универсальной. Однако, примите к сведению, что основная разработка ведется на платформе x86. Мы постараемся включить информацию о различиях компиляции для других платформ, например для PPC. Если вы
Posix
Posix Название Posix образовано от «Portable Operating System Interface», что означает приблизительно «интерфейс переносимых операционных систем». Это не один стандарт, а целое семейство, разработанное Институтом инженеров по электротехнике и радиоэлектронике (Institute for Electrical and Electronics Engineers
ГЛАВА 2 Posix IPC
ГЛАВА 2 Posix IPC 2.1. Введение Из имеющихся типов IPC следующие три могут быть отнесены к Posix IPC, то есть к методам взаимодействия процессов, соответствующим стандарту Posix:? очереди сообщений Posix (глава 5);? семафоры Posix (глава 10);? разделяемая память Posix (глава 13).Эти три вида IPC
3 Поддерживаемые языки
3 Поддерживаемые языки Программа поставляется с поддержкой трех языковАнглийскогоРусскогоУкраинскогоПри наличии большого желания вы можете локализовать программу под любой язык, для этого в каталоге / Language прграммы выберите файл Русский.lng или Ukrainian.lng, что удобнее
POSIX
POSIX В Linux и UNIX самый простой путь установления переменных окружения - добавить их определения в общесистемный профиль значений по умолчанию.Пользователь root также может:* выдать команды setenv() из командной строки wu командного скрипта;* для временного использования
Поддерживаемые типы данных
Поддерживаемые типы данных Числовые типы данных (обсуждаемые в главе 9) следующие:* BIGINT, INTEGER и SMALLINT;* NUMERIC и DECIMAL;* FLOAT и DOUBLE PRECISION.Типы данных даты и времени (обсуждаемые в главе 10):* DATE;* TIME и TIMESTAMP.Символьные типы данных (обсуждаемые далее в главе 11):* CHARACTER;* VARYING CHARACTER и NATIONAL
POSIX
POSIX Linux, UNIX и другие платформы POSIX более предпочтительны, чем Windows, если требуется высокая безопасность. Технологии безопасности этих платформ являются продуманными и очень понятными в реализации. Безопасность файловой системы и надежный доступ присущи требованиям
Поддерживаемые базы данных Microsoft SQL Server
Поддерживаемые базы данных Microsoft SQL Server Допускается подключение к одной из следующих баз данных Microsoft SQL Server:• Microsoft SQL Server 2000 в операционных системах Microsoft Windows 2000 и Microsoft Windows 98 или более поздних версий;• Microsoft SQL Server 2000 Desktop Engine в операционных системах Microsoft Windows 2000 и Microsoft Windows
4.1.1. Файловые системы, поддерживаемые Windows
4.1.1. Файловые системы, поддерживаемые Windows Вы не можете осознанно работать с фалами и каталогами, пока не узнаете, что такое файловая система. Файловая система — это организация данных на диске. Да, определение весьма упрощенное, однако оно подчеркивает суть файловой
Форматы экспорта, поддерживаемые Flash
Форматы экспорта, поддерживаемые Flash Все форматы экспорта графики, поддерживаемые Flash, приведены в табл. 21.1. Из этой таблицы видно, что Flash может экспортировать графику как в векторные, так и в растровые форматы. В последнем случае вся векторная графика