linux 重定向

程序员成长之旅 · 程序员成长之旅/Linux学习 · 422 字

linux中的重要机制 重定向

平时的输出对于linux 就是 输出流

同理 输入 就是输入流

还有一个是 错误流

上次所学的stdio.h 我们知道 其实 就是调用了 三个流  来达到 printf (fprintf(stdout,""))

scanf(fscanf(stdin,""))

并且默认的 输入流 靠键盘  输出流靠显示器的终端

那么 我们能不能不通过键盘输入  不通过 终端输出呢

答案是 当然可以 这时候就用到重定向了

语法

原命令 [流][模式][目标]
[流参数] 0输入 1输出(默认) 2错误
[模式参数] > 覆盖输出 >>追加输出  <输入
[目标参数] 可以使文件 也可以是命令  例如 test.txt   grep

实例

#include<stdio.h>
int main(){
        int value1=0,value2=0;
        int Sum=0;
        scanf("%d,%d",&value1,&value2);
        Sum=value1+value2;
        printf("The Sum is %d\n",Sum);
        return 0;
}

一般使用方法

将结果输出到文件(追加模式)

查看文件

重复使用命令

覆盖模式输出

输入模式

新建文件作为输出源

输出结果

错误流

#include<stdio.h>
int main()
{
        int Num1,Num2;
        int value;
        scanf("%d,%d",&Num1,&Num2);
        if(Num2!=0)
                printf("%d\n",Num1/Num2);
        else{
                fprintf(stderr,"Num2!=0\n");
                return 233;
        }
        return 0;
}