|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : Victor Abramov 2:5020/400 04 Dec 2003 16:18:34 To : Andrey Nebogin Subject : Re: Программирование, rs232, исходник -------------------------------------------------------------------------------- On Thu, 4 Dec 2003 11:43:22 +0000 (UTC), Andrey Nebogin wrote: [skip] > fd = open( "/dev/cuaa1", O_RDWR | O_NOCTTY | O_NDELAY ); Странные какие-то у тебя O_ флаги. Это фря-5 что ли? В любом случае, если под O_NDELAY имеется в виду O_NONBLOCK, то см ниже > if( fd > 0 ) [skip] > for( tries=0; tries<3; tries++ ) > { > if( write( fd, cmd, sizeof(cmd) ) < sizeof(cmd) ) > conti > bufptr = buffer; > nbytes = read( fd, bufptr, sizeof(buffer) ); вот тут вот у тебя read три раза честно вернет нули. Hадо select делать перед read'ом. А если мое предположение про O_NONBLOCK выше неверно, и у тебя fd открыт в блокирующем режиме, то из этого read'а программа вернется или по заполнению буфера, или по ошибке чтения (читай - дисконнекту) Вывод - select поставить до read. -- Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru --- ifmail v.2.15dev5.1 * Origin: Talk.Mail.Ru (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix.bsd/6433dd282770.html, оценка из 5, голосов 10
|