免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5921 | 回复: 7
打印 上一主题 下一主题

[函数] 请问要清空串口的buffer该用什么函数?谢谢! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-02-28 23:26 |只看该作者 |倒序浏览
请问要清空串口的buffer(读入缓冲或输出缓冲)该用什么函数?谢谢!

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
2 [报告]
发表于 2003-02-28 23:37 |只看该作者

请问要清空串口的buffer该用什么函数?谢谢!

fflush.

unix上所有设备,都可以当作文件来操作。

所以和操作文件一样的API好了

论坛徽章:
0
3 [报告]
发表于 2003-03-01 12:09 |只看该作者

请问要清空串口的buffer该用什么函数?谢谢!

可否举个清空串口输出缓冲的例子呢?谢谢!

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
4 [报告]
发表于 2003-03-01 17:17 |只看该作者

请问要清空串口的buffer该用什么函数?谢谢!

呵呵,给你个链接,自己看看。可能资料老了一点。
http://www.fanqiang.com/a4/b7/20010502/110712.html

但是基本上不变。要看最新的,可以看看英文的HOWTO。

大概看了一下,和操作终端的方法差不多。

你说的问题,可以用tcflush。

有问题,可以再探讨

论坛徽章:
0
5 [报告]
发表于 2003-03-02 15:15 |只看该作者

请问要清空串口的buffer该用什么函数?谢谢!

因为我的核押服务器要通过socket从client端接受核押信息,并把它转发给与核押服务器串口相连的核押器核押。若不幸出现网络故障则client端的输出buffer会积累大量过时的核押信息(因client端5秒内得不到回复便重发核押信息);而若串口无法与核押器通讯,在串口的输出buffer也会积累大量过时的核押信息。
   我用了tcflush(fd,TCOFLUSH)后,若串口无法与核押器通讯时,还在往串口发送了105次核押信息串后,核押服务器程序自动终止。这跟我用的是SCO
Openserver5.05系统有关吗?
    请问如何清空socket和串口的输出buffer?谢谢!

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
6 [报告]
发表于 2003-03-03 03:41 |只看该作者

请问要清空串口的buffer该用什么函数?谢谢!

关于你清空socket的想法。我觉得是无法做到的。


因为socket的buffer是在内核中,而且都自己的buffer策略,在buffer中存的并不一定都是
你要发送的完整的包,我想这也许是不允许野蛮清空的原因之一。
控制socket的系统调用无非是ioctl和setsockopt,我查了没有这方面的选项。
呵呵,如果有,我想也是没公开的,

给你个链接,也许你就对socket的buffer会有更深的了解。
http://www.developerweb.net/sock-faq/detail.php?id=406

文件的buffer稍有不同,但是到了内核的buffer,原理是一样的。

而且我觉得你的问题完全可以在应用层解决,并不一定要用很底层的方式。


例如,客户端,你每个包,可以设个retry的次数,大于某次,就不重复发送了。如果总的次数超过,某个
上限,就停止发送,将请求放在自己维护的队列中。至于服务端,接收到重复的,就可以忽略。


串口的操作策略也是一样的,总不能发不出去,还发吧?

至于发了多少次,服务器就退出了,我想有几种可能:

1.服务器重试超过上限,自动退出

2.在极限情况下,出现异常退出。

这就得具体分析了。

论坛徽章:
0
7 [报告]
发表于 2003-03-03 22:26 |只看该作者

请问要清空串口的buffer该用什么函数?谢谢!

非常感谢您的回答!我会尝试在应用层解决该问题。但请问您所说的在极限情况下,出现异常退出,是指什么呢?

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
8 [报告]
发表于 2003-03-04 12:25 |只看该作者

请问要清空串口的buffer该用什么函数?谢谢!

例如,积累的数据多了,自己分配的数据缓冲区不够用,等这一类通常情况正常,但是高峰或者量大时,却有可能出现问题
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP