linux 文件描述符

linux中一切皆文件,socket,磁盘,线程,显示器,键盘等操作都是进行文件的操作.

文件类型标记符
目录(directory)d
字符设备(character)c
块设备(block)b
套接字(socket)s
管道(pipe)p
链接文件(link)l

linux一个进程启动后,在内存中创建PCB控制块,其中维护一个文件描述符表(File descriptor table).

filedescriptorPOSIX表示标准io表示描述
0STDIN_FILENOstdin标准输入(默认指向键盘)
1STDOUT_FILENOstdout标准输入(默认指向显示器)
2STDERR_FILENOstderr标准错误(默认指向显示器)
3其他其他其他

当我们使用open函数时,就是将除0,1,2之外的描述符(一般都是递增)对应的指针,指向了要打开的文件.

在shell重定向中,默认标准输出1(代码中的echo或者print())和错误信息2文件描述符指向的是显示器.
./test.sh 1>log 2>&1,我们将文件描述符1(本来指向显示器)指向了名称为log的文件,然后将文件描述符2指向了文件描述1,最终也输入到了log文件里.
在这里插入图片描述

参考:
https://www.jianshu.com/p/504a53c30c17
http://c.biancheng.net/view/3066.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值