1 何谓输入输出重定向?

默认情况下输入是由键盘输入的。输出是默认的输出到屏幕上。而输入输出重定向就是改变默认的输入输出方向  

2 freopen函数

freopen是被包含与stdio.h头文件中,是重定向输入输出流的函数。此函数一般用于将一个指定的文件打开一个预定义的流:标准输入、标准输出或者标准出错。

声明:FILE *freopen( const char *path,    //文件名,用于存储输入输出的自定义文件名

            const char *mode,     //文件打开的模式。和fopen中的模式(如r-只读, w-写)相同

            FILE *stream        //一个文件,通常使用标准流文件,stdin-输入,stdout-输出

          );              //返回值:成功,则返回一个path所指定文件的指针;失败,返回NULL

3 先写一个是小写字母变为大写字母的程序,我这里是test5.c

#include <stdio.h>
#include <ctype.h>
#include <stdlib.h> int main(){
int ch;
while((ch=getchar())!=EOF){
putchar(toupper(ch));
}
exit();
}

4 然后写一个test6.c,用于调用test5.c

#include <unistd.h>
#include <stdio.h>
#include <stdlib.h> int main(int argc,char *argv[]){
char *filename;
if(argc != ){
fprintf(stderr,"usage:useupper file\n");
exit();
}
filename=argv[];      //获取文件名
if(!freopen(filename,"r",stdin)){  //将stdin文件流和filename文件关联起来
fprintf(stderr,"could not redirect stdin from file %s\n",filename);
exit();
}
execl("./test5","test5",NULL);    //调用test5.c中的程序,使小写字母变成大写字母
perror("could not exec ./test5");
exit();
}

5 最后写一个file.txt,内容为:this is the file,file.txt,it is all lower case

6 结果如图:

Linux学习笔记17——输入输出重定向的更多相关文章

  1. Linux学习笔记:输入输出重定向 >>命令

    Linux重定向是指修改原来默认的一些东西,对原来系统命令的默认执行方式进行改变.比如说我不想看到在显示器的输出,而是希望输出到某一文件中就可以通过Linux重定向来进行这项工作. 将stdout重定 ...

  2. linux学习笔记-12.输入输出重定向及管道

    1.新建一个文件 touch a.txt> b.txt 2.错误重定向:2> find /etc -name zhaoxing.txt 2> error.txt 3.将正确或错误的信 ...

  3. Linux学习笔记 -- stdin/stdout 重定向

    输入/输出重定向 Linux系统通常从一个叫标准输入的地方读取输入并且将一个命令的结果以写入到标准输出反馈给我们:默认情况下,这也是我们使用的终端(命令行).如果我们想改变输入和输出的方式,就需要使用 ...

  4. Linux学习笔记(17) Shell编程之基础

    1. 正则表达式 (1) 正则表达式用来在文件中匹配符合条件的字符串,正则是包含匹配.grep.awk.sed等命令可以支持正则表达式:通配符用来匹配符合条件的文件名,通配符是完全匹配.ls.find ...

  5. Linux 学习笔记

    Linux学习笔记 请切换web视图查看,表格比较大,方法:视图>>web板式视图 博客园不能粘贴图片吗 http://wenku.baidu.com/view/bda1c3067fd53 ...

  6. Linux 学习笔记之超详细基础linux命令 Part 13

    Linux学习笔记之超详细基础linux命令 by:授客 QQ:1033553122 ---------------------------------接Part 12---------------- ...

  7. Linux 学习笔记之超详细基础linux命令 Part 14

    Linux学习笔记之超详细基础linux命令 by:授客 QQ:1033553122 ---------------------------------接Part 13---------------- ...

  8. Linux 学习笔记之超详细基础linux命令 Part 11

    Linux学习笔记之超详细基础linux命令 by:授客 QQ:1033553122 ---------------------------------接Part 10---------------- ...

  9. Linux 学习笔记之超详细基础linux命令 Part 9

    Linux学习笔记之超详细基础linux命令 by:授客 QQ:1033553122 ---------------------------------接Part 8----------------- ...

随机推荐

  1. js--小结②

  2. Unity5.0 手动激活

    提供Unity5.0.1.f1(32-bit)下载http://pan.baidu.com/s/1bg5sDK 密码 ns75 有时候会发现,用激活工具是激活不了的,这个时候就要手动激活,其实个人觉得 ...

  3. Context是什么,怎么用

    一.Context是什么 开始学安卓的时候发现经常有context,但是都不知道为什么,什么时候需要它. 官方文档概述:关于应用程序环境的全局信息的接口.这是一个抽象类,它的实现是由安卓系统提供的.它 ...

  4. java中获得IP地址

    public class IPTest { public static void main(String[] args) { try{ // 获取计算机名 String name = InetAddr ...

  5. delphi 功能函数大全-备份用

    function CheckTask(ExeFileName: string): Boolean;constPROCESS_TERMINATE=$0001;varContinueLoop: BOOL; ...

  6. SQL Server中Id自增列的最大Id是多少

    什么是自增列 在SQL Server中可以将Id列设为自增.即无需为Id指定值,由SQL Server自动给该列赋值,每新增一列Id的值加一,初始值为1. 需要注意的是即使将原先添加的所有数据都删除, ...

  7. new、delete用法(一)

    第一部分:new的使用: #define DEBUG_NEW new(THIS_FILE, __LINE__)解释 THIS_FILE:表示当前类所处的文件名: __LINE__:表示分配内存操作所在 ...

  8. 《cut命令》-linux命令五分钟系列之十九

    本原创文章属于<Linux大棚>博客,博客地址为http://roclinux.cn.文章作者为rocrocket. 为了防止某些网站的恶性转载,特在每篇文章前加入此信息,还望读者体谅. ...

  9. jquery fancybox ie6无法显示关闭按钮

    解决办法: 打开jquery.fancybox-1.3.4.css 注释掉这行就行了: .fancybox-ie6 #fancybox-close { background: transparent; ...

  10. 子网/ip/子网掩码

    IP地址由网络地址和主机地址组成 而现在IP由“子网掩码”通过子网网络地 址细分出 A,B,C类更小的网络.这种方式 实际上就是将原来的A类,B类,C类等分类 中的的主机地址部分用作子网地址,可以 将 ...