STDIN_FILENO与stdin的区别

STDIN_FILENO与stdin的区别:

STDIN_FILENO:

1).数据类型:int

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

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

stdin:

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
发布了60 篇原创文章 · 获赞 15 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/YanWenCheng_/article/details/104111687