Linux C 重定向简单范例

//前言:我们知道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

Linux C 重定向简单范例的相关文章

【linux】重定向

1重定向 1.1      重定向符号 >               输出重定向到一个文件或设备 覆盖原来的文件 >!              输出重定向到一个文件或设备 强制覆盖原来的文件 >>             输出重定向到一个文件或设备 追加原来的文件 <               输入重定向到一个程序 1.2标准错误重定向符号 2>             将一个标准错误输出重定向到一个文件或设备 覆盖原来的文件  b-shell 2>>

Linux中重定向及管道

1重定向1.1      重定向符号 >               输出重定向到一个文件或设备 覆盖原来的文件 >!              输出重定向到一个文件或设备 强制覆盖原来的文件 >>             输出重定向到一个文件或设备 追加原来的文件 <               输入重定向到一个程序 1.2标准错误重定向符号 2>             将一个标准错误输出重定向到一个文件或设备 覆盖原来的文件  b-shell 2>> 

Linux数据流重定向与管道

数据流重定向简单来说就是把原本应该输出到某处(比如说屏幕)的数据,重定向其输出目的地,到其他的地方(比如文件). linux中的输入与输出: 标准输入(stdin):默认从键盘输入 标准输出(stdout):执行的正常结果信息,默认输出到屏幕 标准错误输出(stderr):执行的错误信息,默认输出到屏幕 那就让我们来体验下这三个鬼东西吧: [[email protected] 08:32 ~]$ ll <-- 标准输出,默认结果输出到屏幕 总用量 24 drwxrwxr-x. 2 fuwh fu

linux命令重定向&gt;、&gt;&gt;、 1&gt;、 2&gt;、 1&gt;&gt;、 2&gt;&gt;、 &lt;

重定向命令其实用得不少吧,只是重来都没有仔细看过,这波正好又用到 又有空总结一波. 先看>和>>: 他们俩其实唯一的区别就是>是重定向到一个文件,>>是追加内容到文件.两个命令都是如果文件不存在则创建文件.举个例子来看看: (thrift_rpc)piperck? Desktop ? ll >> 123.txt (thrift_rpc)piperck? Desktop ? ll | grep 123.txt -rw-r--r-- 1 piperck staf

Linux终端下简单的登录程序 密码不回显

在Linux进行登录是输入密码不会被回显,所以我也写了个简单的登入程序,使得在输入密码时不再进行回显. #include <stdio.h> #include <stdlib.h> #include <termios.h> #include <unistd.h> #include <errno.h> #include <string.h> #include <stdbool.h> #define USER_NAME &qu

[软件测试]Linux环境中简单清爽的Google Test (GTest)测试环境搭建(初级使用)

本文将介绍单元测试工具google test(GTEST)在linux操作系统中测试环境的搭建方法.本文属于google test使用的基础教程.在linux中使用google test之前,需要对如下知识有一些了解: (1)C/C++编程方法 (2)makefile的编写 (3)linux命令行操作 (4)GTEST背景知识:它是用来干什么的?它用什么语言编写的?它的一些基本语法?等等 以上知识不需要做到熟能生巧,只要达到入门级别,使用GTEST不会费任何力气,毕竟GTEST也不是一个高门槛的

Linux awk命令简单操作

AWK Command: 一 : print print item1,item2,.......... 要点: 1.各项目之间使用逗号隔开,而输入时则以空白字符分隔 2.输出的item可以为字符串或树枝,当前记录的字段(如$1).变来那个或awk的表达式,树枝会转换成字符串 3.print命令后面的item可以省略,此时其功能相当于print $0,以此,如果想输出空白行,则需要print "" 例子: 1.awk 'BEGIN { pring "line one\n lin

Linux curl使用简单介绍

http://www.linuxidc.com/Linux/2008-01/10891.htm -------------------------------------------------- Linux curl使用简单介绍 [日期:2008-01-29]     来源:Linux公社  作者:notech Curl是Linux下一个很强大的http命令行工具,其功能十分强大. 1) 二话不说,先从这里开始吧!$ curl http://www.linuxidc.com回车之后,www.l

Linux下搭建简单的DHCP服务器

在RHEL6.5下搭建简单的DHCP服务器 实验目标 1.为192.168.10.0/24网段的客户机自动配置网络参数 用来给客户机自动分配地址的IP地址范围是:192.168.10.50-192.168.10.100.192.168.10.120-192.168.10.200 客户机的默认网关地址设为192.168.10.1 客户机所使用的DNS服务器设为202.106.0.20.8.8.8.8,默认域后缀是"tarena.com" 将默认租期设为2小时,最大租期设置为4小时 2.为