Chinaunix首页 | 论坛 | 博客
  • 博客访问: 43820
  • 博文数量: 15
  • 博客积分: 71
  • 博客等级: 民兵
  • 技术积分: 90
  • 用 户 组: 普通用户
  • 注册时间: 2011-12-08 00:01
文章分类
文章存档

2012年(10)

2011年(5)

我的朋友

分类:

2012-02-20 21:40:49

[Shell]文件描述符

转自:http://zhu8337797.blog.163.com/blog/static/170617549201161955814278/

 

Linux系统中, 每当进程打开一个文件时,系统就为其分配一个唯一的整型文件描述符,用来标识这个文件。大家知道,标准C中每个进程默认打开的有三个文件,标准输入,标准输出,标准错误,分别用一个FILE结构的指针来表示,即stdinstoutsterr,这三个结构分别维护着三个文件描述符0,1,2

 

打开文件描述符

         Shell中,012是默认可用的三个描述符,为了利用其它文件描述符来标识特定文件,我们需要使用exec命令来打开该文件,并指定一个数字作为描述符:

exec m> outfile

exec n< infile

第一行以输出方式打开文件outfile并且赋予文件描述符m,第二行以输入方式打开文件infile并且赋予文件描述符n

 

复制文件描述符

         符号<&可以复制一个输入描述符,符号>&可以复制一个输出描述符:

exec n<&m

exec命令打开文件描述符n并将其作为文件描述符m的副本。

 

关闭文件描述符

exec n<&-

exec m<&-

exec命令关闭文件描述符n和文件描述符m

 

阅读(1758) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~