STDIN_FILENO与STDIN的区别

STDIN_FILENO与STDIN的区别:

  STDIN_FILENO:

  1).数据类型:int

  2).层次:系统级的API,是一个文件句柄,定义在<unistd.h>中。

  3).相应的函数:open(),close(),read(),write(),lseek()等系统级别的函数。

  SDTIN:

  1).数据类型:FILE *

  2).层次:c语言的提供的标准输入流。c语言标准库封装系统函数实现。高级的输入输出函数。可在<stdio.h>中找到外部声明。

  3).相应的函数:fopen(),fclose(),fread(),fwrite(),fseek()等c语言标准函数。

<unistd.h>

/* Standard file descriptors.  */
#define STDIN_FILENO    0       /* Standard input.  */
#define STDOUT_FILENO   1       /* Standard output.  */
#define STDERR_FILENO   2       /* Standard error output.  */

<stdio.h>

/* Standard streams.  */
extern struct _IO_FILE *stdin;          /* Standard input stream.  */
extern struct _IO_FILE *stdout;         /* Standard output stream.  */
extern struct _IO_FILE *stderr;         /* Standard error output stream.  */
/* C89/C99 say they're macros.  Make them happy.  */
#define stdin stdin
#define stdout stdout
#define stderr stderr

                                                      2012.8.8

原文地址:https://www.cnblogs.com/svking/p/STDIN_FILENO.html