[Linux C语言](学习笔记)标准输入流输出流以及错误流

stdin 标准输入流,标准的输入设备默认键盘

stdout 标准输出流,标准的输出设备默认屏幕

stderr 标准错误流,只有程序出错时才会执行的流程

printf(“abc”) 是对fprintf(stdout,”abc”)函数的封装.把“ ”内的内容写入到stdout文件里去,stdout其实就是默认显示器(屏幕)

scanf(“%d”,&a) 是对fscanf(stdin,”%d”,&a)函数的封装.用键盘往a变量中输入一个数据

#include 
int main()
{
    printf("hello world!\n");//调用了标准输出流的功能
    int a;
    scanf("%d", &a);//调用了标准输入流的功能
    printf("input value is :%d\n", a);
    return 0;
}

实际上我们的操作系统,当我们执行程序的一瞬间,./a.out的一瞬间,它会

为我们应用程序启动一个东西叫进程,那么启动进程的同时,它会给我们提

供一系列的指针。

Linux把所有的东西都当作文件来处理,如果外接了个打印机,它把打印

机当作文件,外接了个U盘,它把U盘也当做文件。

它认为所有的外部设备和磁盘里保存的文件是一样的。
[Linux C语言](学习笔记)标准输入流输出流以及错误流_第1张图片

它把所有的东西都当作文件来处理,那么当我们启动应用程序的时候,它也当我们这个应用程序要和文件交互,它会默认帮我们创建三个文件

/*
stdin
stdout
stderr

*/

如果要读取一个设备的信息,就是通过标准输入流stdin来读取的。

如果我让我的这个应用程序读取的数据来自于键盘,那么我们就是接收来自

键盘的输入,当然我认为它来自于光盘,那么它读的就是光盘里的输入的文件。

所以,stdin就负责往这个程序里输入数据。

标准错误流:

#include 
int main()
{
    printf("please input the value a :\n");//调用了标准输出流的功能
    //fprintf(stdout,"please input the value a :\n");
    int a;
    scanf("%d", &a);//调用了标准输入流的功能
    //fscanf(stdin,"%d",&a);
    //我们要求a>0
    if (a < 0)
    {   fprintf(stderr,"the value must > 0");
        return 1;//让电脑知道程序出错,main函数返回值不等于0
    }
    return 0;
}

你可能感兴趣的:(慕课网C语言视频笔记)