免费注册 查看新帖 |

Chinaunix

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

[C] 问个问题,有关stdin和tty 字符型设备 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-07-19 19:54 |只看该作者 |倒序浏览
以下是我的理解,有什么错误请指出

本质上,如果没有重新定向,stdin可以简单的理解成为一个流,一般指向自己在用的终端,tty/pts等,一般为字符型设备

我现在有一个问题,如果在不重新定向的前提下

如果有一个线程open了自己在用的/dev/tty0(不一定是这个名字),然后不停read,然后在同一个process的另一线程里面对stdin调用fgets之类的

我发现如果输入123456,一个线程会得到135另一个得到246

问,是不是这是因为/dev/tty0是一个字符型设备,所以一次从device buffer里面read一个字符就返回,所以2个不停read的线程就会交互得到字符?



还有,我发现后台程序不能打开/dev/tty0作为自己的stdin/stdout, 为什么?

论坛徽章:
1
白羊座
日期:2013-09-18 22:02:26
2 [报告]
发表于 2012-07-20 19:37 |只看该作者
因为精灵程序没有终端。没有终端就不能打开tty

论坛徽章:
0
3 [报告]
发表于 2012-07-24 08:38 |只看该作者
没有人回答我?

论坛徽章:
0
4 [报告]
发表于 2012-07-24 19:46 |只看该作者
不是你说的精灵程序

是一个前台程序的2个线程
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP