2011-03-29 107 views
1

我正在写一个程序,读取和写入串行。我想知道,有没有办法从一个tty设备(如/ dev/ttyS0)中查看下一个值,而无需将其从队列中移除。我已经查找了此模块的文档或源代码,并且迄今为止无法找到它。如果有人知道它在哪里,或者哪些ioctls可用,请告诉我。有没有办法从一个tty设备偷看一个值

+0

你试过看看会发生什么? – 2011-03-29 20:05:53

+0

我不知道你问什么。我寻找一种方法来偷看价值,我无法找到一个。 – 2011-03-29 20:09:59

+0

你是如何阅读设备的?如果你向我们展示你有什么代码,你可能会得到一些建议。现在,我们完全处于黑暗中。 – 2011-03-29 20:34:05

回答

1

使用getcungetc的组合将允许您查看单个字节。

如果您需要多个字节,则需要手动进行缓冲。

+0

您确定访问设备节点时应该使用stdio流吗?据我所知,将stdio调用与直接系统调用('ioctl')混合在一起会引发*奇怪的事情发生...... – thkala 2011-03-29 20:58:18

+2

stdio调用与ioctl结合使用是很好的;实际上,stdio将导致正在运行的系统调用来执行实际的I/O。由于缓冲区分离,将stdio与C++ iostreams组合在同一文件中是一个坏主意,但ioctl很好。 – boycy 2011-04-08 15:01:13

相关问题