LINUX.ORG.RU

поможите ламеру2

 ,


0

1
    fd = open (portname, O_RDWR | O_NOCTTY | O_NDELAY);
    if (fd < 0)
    {
            printf("error opening SERIAL port: %s\n", strerror(errno) );

            return -1;
    }

народ, подскажите, при чтении/записи в com порт как сделать так, чтобы запуск еще одного потока на тот же com порт блокировался? Ну например, пишется с одного компа на другой из терминала. На одном из компов запускается еще один терминал. Вот чтобы в этом новом терминале он выходил по ошибке открытия com порта? Может флаг какой в функции open установить?



Последнее исправление: krol (всего исправлений: 1)
Ответ на: комментарий от krol

Омг. Берёшь терминал, набиваешь в нём команду «man flock», внимательно читаешь. Если нет терминала или не установлены нужные ман-страницы, можешь с этим же запросом пойти в гугл.

Gvidon ★★★★
()
Ответ на: комментарий от HerrWeigel

К стати, всегда интересовала что это за цифра и откуда она берется? Я понимаю, что есть маны и по проге и по одноименной библиотеке, просто помню сталкивался с манами под номерами 3 и 7, но манов 1,2,4, 5 и 6 небыло, в связи с чем и возник вопрос.

RiseOfDeath ★★★★
()
Последнее исправление: RiseOfDeath (всего исправлений: 2)
Ответ на: комментарий от HerrWeigel

Спасибо, ребята.

но лучше не flock. при вызове «flock» программа на нем застревает, пока ресурс не освободится. вот попробовал, лучше какой-нибудь lockf(,F_TLOCK,0)

но все равно спасибо за подсказку

krol
() автор топика
Ответ на: комментарий от krol

чтобы запуск еще одного потока на тот же com порт блокировался?
блокировался

А ты разве не этого хотел?

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