zoukankan      html  css  js  c++  java
  • 文件描述符与文件指针

    高级IO:ANSI C提供的标准IO,通常也称为带缓冲的IO

    低级IO:通常也称为不带缓冲的IO

    文件描述符:

      对于LINUX而言对所有设备或文件的操作都是通过文件描述符进行的。当打开一个文件的时候内核向进程返回一个文件描述符(非负)。后续对文件的操作只需要通过该文件描述符,

    内核记录有这个打开文件的信息。一个进程启动时,默认打开了三个文件,标准输入、标准输出、标准错误,对应文件描述符是0(STDIN_FILENO),1(STDOUT_FILENO),2(STDERR_FILENO),这些常量定义在unistd.h头文件中。

    文件指针:

      在C语言中用一个指针变量指向一个文件,这个指针称为文件指针。通过文件指针就可对它所指的文件进行各种操作。例如:FILE *fp;

    表示fp是指向FILE结构的指针变量,通过fp即可找存放某个文件信息的结构变量,然后按结构变量提供的信息找到该文件,实施对文件的操作。习惯上也笼统地把fp称为指向一个文件的指针。

    /*
    FILE* fp       int(fd)
    stdin          STDIN_FILENO
    stdout         STDOUT_FILENO
    stderr         STDERR_FILENO
    文件指针和文件描述符的转换:
    fileno:将文件指针转换为文件描述符  int fileno(FILE *stream);
    fdopen:将文件描述符转换为文件指针   FILE *fdopen(int fd, const char *mode);
    */
    #include<stdlib.h>
    #include<stdio.h>
    int main()
    {
        printf("fileno(stdin)=%d ",fileno(stdin));
        return 0;
    }

  • 相关阅读:
    python学习第三课
    Linux基本操作知识一
    Linux是什么
    Django 多对多 关系
    Django 解决跨域
    支付宝支付
    django中间件
    DRF一对多序列化和反序列化
    python代码实现购物车(django的redis与vue)
    Spring 依赖注入两种方式
  • 原文地址:https://www.cnblogs.com/wsw-seu/p/8280356.html
Copyright © 2011-2022 走看看