Добрый день.
Читаю из неблокирующего сокета с помощью select по таймауту. Всё бы хорошо, но одно «но»: другой процесс может подключиться к сокету и считать данные до моего процесса. Т.е. мы по селекту отработаем, но read ничего не считает (все считанно до нас).
открываю сокет так:
fd = open(port, O_RDWR | O_NOCTTY | O_NDELAY);
и после всех проверок (открылся и всё хорошо)
fcntl(fd, F_SETFL, O_NDELAY);
Какой еще есть флажек? Чтобы иному процессу выдалось желанное «device is busy bla-bla»