Linux文件描述符、重定向和管道

目录

1.一切皆文件

2.文件类型

3.文件描述符

(1)输入输出标准说明

(2)查看一个进程打开了哪些文件

(3)一个进程可以打开的文件描述符限制

4.重定向

(1)输出重定向

补充:

(2)输入重定向

(3)EOF

(4)错误重定向

(5)null黑洞和zero空文件

(6)&>和>&符号

5.管道 | 的使用


1.一切皆文件

普通文件,目录,磁盘文件、串行口、打印机和其他硬件设备等,对Linux来说,统统都是文件

文件为操作系统服务和设备提供了一个简单而一致的接口

2.文件类型

  • (1)普通文件
  • (2)目录
  • (3)块特殊文件()
  • (4)字符特殊文件
  • (5)管道文件
  • (6)套接字
  • (7)符号链接

3.文件描述符

文件描述符:是内核为了高效管理已被打开的文件所创建的索引,用于指向被打开的文件,所有执行I/O操作的系统调用都通过文件描述符;

文件描述符是一个简单的非负整数,用以标明每一个被进程所打开的文件,

程序刚刚启动的时候,第一个打开的文件是0,第二个是1,依此类推。也可以理解为是一个文件的身份ID

用户通过操作系统处理信息的过程中,使用的交互设备文件(键盘,鼠标,显示器)

(1)输入输出标准说明

STDIN 标准输入    默认的设备是键盘    文件编号为:0  

STDOUT 标准输出  默认的设备是显示器  文件编号为:1  ,也可以重定向到文件

STDERR 标准错误   默认的设备是显示器  文件编号为:2  ,也可以重定向到文件

(2)查看一个进程打开了哪些文件

  • 语法: ll /proc/进程ID/fd

注:

  • 这些0,1,2,4就是文件的描述符。一个进程启动时,都会打开 3 个文件:标准输入、标准输出和标准出错处理。这3 个文件分别对应文件描述符为 0、1和2也就是宏替换 STDIN_FILENO、STDOUT_FILENO和STDERR_FILENO。
  • 其实上述的0、1、2、4就是后面文件的软链接
  • /proc/进程ID/fd  #这个fd目录下,专门存文件描述符
  • 对文件描述符的操作就是对文件本身的操作。 我可以直接通过操作文件描述来修改文件

(3)一个进程可以打开的文件描述符限制

1)查看一个进程最多可以同时打开的文件数

2)临时修改一个进程最多可以同时打开的文件数

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值