<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Linux Forum &mdash; COM-port's buffer, ioctl]]></title>
	<link rel="self" href="https://linuxforum.ru/extern.php?action=feed&amp;tid=17094&amp;type=atom" />
	<updated>2011-10-09T09:26:47Z</updated>
	<generator>PunBB</generator>
	<id>https://linuxforum.ru/viewtopic.php?id=17094</id>
		<entry>
			<title type="html"><![CDATA[COM-port's buffer, ioctl]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=218226#p218226" />
			<content type="html"><![CDATA[<p>Здравствуйте!</p><p>Есть ли возможность узнать, сколько байтов находится в буфере COM-порта,<br />не вызывая read и не теряя этих байтов? Вопрос вызван тем, что порт ведёт<br />себя непонятным образом. Правда, это не аппаратный COM-порт, это<br />USB-переходник фирмы MOXA.</p><p>Также есть ли где-нибудь полное описание всех команд ioctl?<br />В &quot;man ioctl_list&quot; говорится, что это описание очень неполное.<br />Например, у меня давно есть программа, использующая<br />ioctl(fd, KDMKTONE, n), но я не помню, где я нашёл описание<br />этой команды. В Интернете оно есть, м.б., есть и полное описание?</p><br /><p>Есть вызов poll, но, как я понял, с его помощью можно установить только<br />факт прихода байтов, а мне надо именно количество, чтобы считать, когда<br />придёт весь пакет.</p><p>Как получить количество, пока не нашёл, но можно опрашивать порт<br />вызовм poll до тех пор, пока там не появятся байты, а затем запустить<br />read, но при этом в termios VMIN должно быть установлено в количество<br />байтов в пакете, а VTIME должно быть не 0.</p><p>Пётр.</p>]]></content>
			<author>
				<name><![CDATA[Peter]]></name>
				<uri>https://linuxforum.ru/profile.php?id=5246</uri>
			</author>
			<updated>2011-10-09T09:26:47Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=218226#p218226</id>
		</entry>
</feed>
