美文网首页
Linux系统调用与标准IO等

Linux系统调用与标准IO等

作者: brownfeng | 来源:发表于2020-02-01 15:19 被阅读0次

Linux中库函数和系统API,以及FILE*和文件描述符fd

标准IO,定义在<stdio.h>中, 例如:

  1. stdin,stdout, 他们的类型是 FIlE *
  2. 相关的API是 fopen,fwrite,fread,fclose等, 都是以f开头.
  3. 我们常用的prinf,fprintf,fget,fput也是标准IO.

系统调用,定义在<unistd.h>中, 例如:

  1. STDIN_FILENO,STDOUT_FILENO类型是int
  2. 相关API是open,read,write,close

我们可以通过fileno()获取文件指针FILE*指定文件流所使用的文件描述符

例如:

#include <stdio.h>
#include <unistd.h>


int main()
{
    printf("%d \n",fileno(stdin));      //0
    printf("%d \n",fileno(stdout));     //1
    printf("%d \n",fileno(stderr));     //2

    return 0;
}

一般我们使用<stdio.h>中的标准IO函数进行打印 -- printf().

实际在linux的底层实现中也只是用的buf + write实现的, 如果我们想要printf函数立即打印,我们可以手动调用fflush()主动刷新!!!

相关文章

网友评论

      本文标题:Linux系统调用与标准IO等

      本文链接:https://www.haomeiwen.com/subject/ezcxxhtx.html