Chinaunix首页 | 论坛 | 博客
  • 博客访问: 188741
  • 博文数量: 40
  • 博客积分: 1768
  • 博客等级: 上尉
  • 技术积分: 410
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-28 18:15
文章分类
文章存档

2012年(4)

2011年(11)

2010年(10)

2009年(6)

2008年(9)

分类: LINUX

2011-11-17 11:03:44

stdin 由标准C库实现, STDIN_FILENO是指0号文件描述符。

标准库内封装了系统 API 调用,如 fread 内部实现调用 read。STDIN 属于标准库处理的输入流,其声明为 FILE 型的,对应的函数前面都有f开头,如fopen/fread/fwrite/fclose 标准库调用等。

STDIN_FILENO属于系统API接口库,其声明为 int 型,是一个打开文件句柄,对应的函数主要包括 open/read/write/close 等系统级调用。文件描述符是linux内核(类unix操作系统)专有概念,对文件描述符的操作属于系统调用,无法在windows或其他系统中找到。

在linux下,stdin的实现必然依赖于文件描述符。也就是说这两个东西在不同的层次,一个是用户层的C库,一个是系统层的系统调用。
阅读(1935) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~