Chinaunix首页 | 论坛 | 博客
  • 博客访问: 8048
  • 博文数量: 4
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 10
  • 用 户 组: 普通用户
  • 注册时间: 2015-08-10 11:35
文章分类
文章存档

2015年(4)

我的朋友

分类: LINUX

2015-08-19 15:58:49

原文地址:dup()与dup2() 作者:tastesweet

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),所以要获得文件描述符,而现有的文件指针,就可以用这个函数来进行转换。    
阅读(491) | 评论(0) | 转发(0) |
0

上一篇:Linux awk命令详解

下一篇:Linux_C编程实例

给主人留下些什么吧!~~