因为IO相关函数与系统调用接口对应,并且库函数封装系统调用,所以本质上,访问文件都是通过fd访问的。所以C库当中的FILE结构体内部,必定封装了fd。
往标准输出写入有三种方法:
- printf(str1);//C库函数
- fwrite(str2,1,strlen(str2),stdout);//C库函数
- write(1,str3,strlen(str3));//系统调用
来段代码研究下:
运行出结果:
但是如果对进程实现输出重定向呢?结果此时变成了:
因为IO相关函数与系统调用接口对应,并且库函数封装系统调用,所以本质上,访问文件都是通过fd访问的。所以C库当中的FILE结构体内部,必定封装了fd。
往标准输出写入有三种方法:
- printf(str1);//C库函数
- fwrite(str2,1,strlen(str2),stdout);//C库函数
- write(1,str3,strlen(str3));//系统调用
来段代码研究下:
运行出结果:
但是如果对进程实现输出重定向呢?结果此时变成了: