Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1652105
  • 博文数量: 245
  • 博客积分: 10378
  • 博客等级: 上将
  • 技术积分: 2571
  • 用 户 组: 普通用户
  • 注册时间: 2009-03-27 08:19
文章分类

全部博文(245)

文章存档

2013年(4)

2012年(8)

2011年(13)

2010年(68)

2009年(152)

分类: LINUX

2009-03-27 08:42:16

dup()与dup2():
  • 操作对象:文件与管道[管道是一种特殊的文件,也有文件描述符]
  • 区别:dup(fd)将fd的文件描述复制到文件表中的最小的可用的文件描述符位置,而dup2(fd1,fd2)是将fd1的文件描述符复制到fd2的文件描述符,如果fd2文件开打,则会先关闭该文件在复制。
  • 常用的文件描述符有: 0:stdin 1:stdout 2:stderr.
  • 复制文件描述符的含义: 相同的打开文件(或管道)、相同的文件指针(两个文件共享一个指针)、相同的访问方式(读取、写入)、相同的文件状态。  
  • linux系统下,默认的错误返回值一般情况下为非正数,通常为-1,平时检测可以看是否<0。
  • fileno()函数,是个重要的函数,它的返回值是文件描述符,文件描述符是个数字,而stdio、stdout、stderr是指针类型的变量,形如:FILE *stdin、FILE *stdout、FILE *stderr,fileno函数的功能是:获得流文件的文件描述符,fileno()的定义为: extern int fileno(FILE *__stream),所以要获得文件描述符,而现有的文件指针,就可以用这个函数来进行转换。    
阅读(2304) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~