//前言:我们知道printf()会将信息输出到stdout流,然后展示到屏幕上。
//那么我们所实现的简单的重定向就可以将stdout指向一个文件,然后读写,这样就达到了重定向的目的。
//code
1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <unistd.h> 4 #include <fcntl.h> 5 6 //enter F2 to get the debug window. 7 int main(int argc,char* argv[]) 8 { 9 /*FILE * fopen(const char * path,const char * mode); 10 返回值:文件顺利打开后,指向该流的文件指针就会被返回。 11 如果文件打开失败则返回NULL,并把错误代码存在errno 中*/ 12 FILE *file = fopen("./a.out","a+"); 13 if(file == NULL) 14 { 15 //fprintf(stderr,"%s","error occur when opening the file"); 16 } 17 else 18 { 19 //先暂存stdout原先的流 20 void* out = stdout; 21 stdout = file; 22 printf("%s\r\n","put data to the file!"); 23 fclose(file); 24 // 25 stdout = out; 26 printf("%s\r\n","put data to the stdout stream"); 27 exit(0); 28 } 29 } 30
//然后去查看a.out文件内容,就可以发现多了内容"put data to the file"。
时间: 2024-10-27 19:43:57