linux c之STDIN_FILENO的作用及与stdin的区别

网友投稿 1051 2022-05-28

1.STDIN_FILENO的作用

STDIN_FILENO属于系统API接口库,其声明为 int 型,是一个打开文件句柄,对应的函数主要包括 open/read/write/close 等系统级调用。

linux c之STDIN_FILENO的作用及与stdin的区别

操作系统一级提供的文件API都是以文件描述符来表示文件。STDIN_FILENO就是标准输入设备(一般是键盘)的文件描述符。

2.区别

1)数据类型不一致:

stdin类型为 FILE*

STDIN_FILENO类型为 int

使用stdin的函数主要有:fread、fwrite、fclose、fputs、fgets等,基本上都以f开头

比如函数 fget(buf, sizeof(buf), stdin);

使用STDIN_FILENO的函数有:read、write、close等

2)stdin等是FILE *类型,属于标准I/O,高级的输入输出函数。在

STDIN_FILENO等是文件描述符,是非负整数,一般定义为0, 1, 2,属于没有buffer的I/O,直接调用系统调用,在

3)STDIN_FILENO 是标准输入的文件描述符

详见/usr/include/unistd.h

代码:

/* Standard file descriptors. */<

Linux

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:在Virtualbox虚拟机中配置使用ROS Spark机器人(Orbbec Astra 和 Xtion)
下一篇:【原理】Linux 基础系列之 input 子系统浅析
相关文章