Как мне установить неблокирующий сокет UDP в QNX

#c #sockets #udp #qnx

#c #сокеты #udp #qnx

Вопрос:

Я кодирую приемник дейтаграмм UDP на C в операционной системе QNX и хочу выполнять неблокирующие вызовы recvfrom().

Справочная страница QNX в recvfrom() предполагает, что я каким-то образом могу перевести сокет в неблокирующий режим с помощью ioctl(). К сожалению, справочная страница в ioctl() не очень помогает.

Кто-нибудь может рассказать мне об аргументах, которые я должен передать в ioctl(), чтобы установить неблокирующий сокет?

Ответ №1:

В ioctl документе для QNX 6.4.0 содержится немного больше информации:

FIONBIO

Установить или очистить неблокирующий ввод-вывод

ioctl Вызов должен выглядеть примерно так:

 int on = 1;
ioctl(fd, FIONBIO, amp;on);
 

Комментарии:

1. Это работает. Спасибо. Похоже, Google не указал мне на лучшую документацию.