Linux系统调用与标准IO等

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

标准IO,定义在中, 例如:

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

系统调用,定义在中, 例如:

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

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

例如:

#include 
#include 


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

    return 0;
}

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

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

你可能感兴趣的:(Linux系统调用与标准IO等)