完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
前言 在Linux系统中,一切设备都看作文件。而每打开一个文件,就有一个代表该打开文件的文件描述符。程序启动时默认打开三个I/O设备文件:标准输入文件stdin,标准输出文件stdout,标准错误输出文件stderr,分别得到文件描述符 0, 1, 2。 实例 现在来看一个 测试ttyname函数的实例(ttyname函数功能是返回在该文件描述符上打开的终端设备的路径名): #include "apue.h" int main(void) { char *name; if(isatty(0)) { name = ttyname(0); if(name == NULL) name = "undefined"; } else { name = "not a tty"; } printf("fd 0: %sn", name); if(isatty(1)) { name = ttyname(1); if(name == NULL) name = "undefined"; } else { name = "not a tty"; } printf("fd 1: %sn", name); if(isatty(2)) { name = ttyname(2); if(name == NULL) name = "undefined"; } else { name = "not a tty"; } printf("fd 2: %sn", name); exit(0); } 运行该程序得到: 从程序运行结果来看,在文件描述符0、1和2上打开的终端设备都是/dev/tty1. 那么疑问就来了,前言中明确指出文件描述符0、1和2是打开标准输入文件stdin,标准输出文件stdout和标准错误输出文件stderr分别得到的。那么文件描述符0、1和2到底是打开哪个文件得到的呢?这里该如何解释呢???望懂得其中缘由者指点一二,小弟万分感谢! |
|
相关推荐
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
583 浏览 0 评论
AI模型部署边缘设备的奇妙之旅:如何在边缘端部署OpenCV
2207 浏览 0 评论
tms320280021 adc采样波形,为什么adc采样频率上来波形就不好了?
1227 浏览 0 评论
1776 浏览 0 评论
1462 浏览 0 评论
74794 浏览 21 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 15:30 , Processed in 0.638228 second(s), Total 91, Slave 73 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号