扫码关注官方订阅号
比如linux在运行中,我想stdin一会是串口,一会是键盘。。。
求解。谢谢啦!
认证高级PHP讲师
将input.txt作为标准输入: freopen("input.txt", "r", stdin); 将串口0作为标准输入: freopen("/dev/ttyS0", "r", stdin); (不确定串口0是不是对应ttyS0) 将键盘作为标准输入: freopen("/dev/tty", "r", stdin);
input.txt
freopen("input.txt", "r", stdin);
串口0
freopen("/dev/ttyS0", "r", stdin);
ttyS0
键盘
freopen("/dev/tty", "r", stdin);
这样相当于给stdin延伸出一段缓冲出来,缓冲能接受多方输入,一方就是原来的标准输入,其他的可以你自己随意定义了。
我朋友是这么做的,已经过验证。
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
扫描下载App
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
将
input.txt
作为标准输入:freopen("input.txt", "r", stdin);
将
串口0
作为标准输入:freopen("/dev/ttyS0", "r", stdin);
(不确定串口0
是不是对应ttyS0
)将
键盘
作为标准输入:freopen("/dev/tty", "r", stdin);
另一个线程就是 想往stdin里面写点什么 就直接往管道的写端直接 write(fd[1] ...)
这样相当于给stdin延伸出一段缓冲出来,缓冲能接受多方输入,一方就是原来的标准输入,其他的可以你自己随意定义了。
我朋友是这么做的,已经过验证。