关于“文件描述符”和 “源” 和 “实体文件”之间的关系
来源:11-11 案例:重定向标准输入输出流

十三山入秋
2021-01-09
老师您好,我又来了:
1.我把这节课的东西,画了个流程,这个图对吗
2.还有个问题,就是saved_stdout_no始终是和控制台实体绑在一起,是不是可以通过saved_stdout_no绑定某个类似FILE *file 或 stdout级别的 东西 来向控制台写东西?
saved_stdout_no = dup(fileno(stdout));
saved_stdout_no 的结果总是3
fileno(stdout)的结果总是1
文件描述符,是一个int;
stdout的话,和FILE *file是一个级别的,应该是属于一种实体文件在内存中的打开状态的对象;
控制台也能算是实体文件的吧?
我们是不是能够把save_stdout_no通过某种方式和 stdout/FILE *file这种同级别类型的对象绑到一起,然后用该对象 向控制台写东西
写回答
3回答
-
1 对的
012021-01-09 -
bennyhuo
2021-01-09
只要有文件描述符,就可以通过win或者linux底层的io api 来写入文件,例如你可以搜一下 write函数
012021-01-09 -
bennyhuo
2021-01-09
文件描述符是操作系统底层的io api 当中的概念,标准输出的值确实就是1,但复制的不一定总是3。
032021-01-09
相似问题