c - 用于读取串口的 read 系统调用中的超时事件

标签 c linux operating-system

我正在使用读取系统调用从串行读取数据。看来这个调用只读取一个字节,尽管它给出了要读取的字节数

bytes_read = read(fp, buffer, 20);

我不知道发送者将发送多少字节。如果我知道的话,我会读很多遍。我怀疑,虽然读入串行第二个字节没有到达,所以它出来了。因此我想实现超时。 read 调用应该等待那么多时间,读取所有字节直到超时。我希望专家能在这方面帮助我。

最佳答案

您可以通过 termios(3) 库调用来控制超时和行缓冲区特性。

关于c - 用于读取串口的 read 系统调用中的超时事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25205632/

相关文章:

c - SSBO 作为更大的 UBO?

c - 读取每行 3 个字符的文件时,sizeof(char) 不起作用

c - 为什么正则表达式不是 ISO C99 的一部分

php - Linux 上 Apache 的文件权限错误

windows - 如何将Win2K3改造为工作站开发操作系统?

c - 用于嵌入式系统/电子/控制的Linux

ios - 从 nsdata 获取字节附加额外的垃圾字符

linux - 从 Linux 终端运行 PERL 脚本时保留重音字母

c++ - 如何在 C++ 中创建临时目录?

javascript - 异步实际上是如何工作的......?