Tigar пишет:
Похоже, что надо применять неблокирующее открытие (тогда read возвращается сразу, не ожидая принятых данных), читать принятые байты поштучно и складывать в свой буфер. Это может работать и без тредов, но насчёт торможения неуверен, делал это в консольной программе. А вариант с тредами и чтением всего пакета, как здесь, пока нормально работает только под оффтопиком, для Линукса решения сам ещё не нашёл.Здравствуйте! Передо мной стоит почти такая же задача. Опыта программирования у меня нет, вот пытаюсь разобраться как делать. Я хочу в цикле отрашивать открытые com порты через select(system call). Если что-то пришло, то прочитать и снова в цикл. Ожидание чтения с порта хочу побороть установкой флага FNDELAY на на открытый дескриптор порта:(fcntl(fd, F_SETFL, FNDELAY))... У вас используются треды, вот я и думаю, будет ли работать мойвариант без тредов и не будет ли он тормозить сичтему?