LINUX.ORG.RU

Эксклюзив для tty.


0

0

Проблема: при открытии порта ttyS* он остается доступен другим процессам. Т.е. несколько процессов могут ОДНОВРЕМЕННО писать в него, читает тот, который открыл дескриптор первым. Открывал так: int tty = open("/dev/ttyS0", O_RDWR | O_NONBLOCK | O_NOCTTY | O_EXCL); Пробовал залочить: lockf(tty, F_LOCK, 0); или fcntl(tty, F_SETFS, FD_READ, FD_WRITE); или даже fcntl(tty, F_SETFD, FD_READ, FD_WRITE); fcntl(tty, F_SETLK, FD_READ, FD_WRITE); Эффекта везде ноль. Второй процесс спокойно открывает и пишет в порт.Что делать?


Re: Эксклюзив для tty.

Есть специальный флаг для open() (возможно не портируемый) описанный в info glibc

cvv ★★★★★ ()
Ответ на: Re: Эксклюзив для tty. от cvv

Re: Эксклюзив для tty.

Флаги пересмотрел. Нет ничего подобного. Предлагают лочить, если что. А лочить не получается. Почему-то в залоченный порт можно нагло писать. Кстати, подобная ситуация наблюдается и с файлами.:-(

Varcom ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.