文件描述符fd,与管道

文件描述符

  • 查看当前进程文件描述符
ljw@ljw-virtual-machine:~$ ll /proc/$$/fd
总用量 0
dr-x------ 2 ljw ljw  0 714 19:50 ./
dr-xr-xr-x 9 ljw ljw  0 628 20:27 ../
lrwx------ 1 ljw ljw 64 714 19:50 0 -> /dev/pts/18
lrwx------ 1 ljw ljw 64 714 19:50 1 -> /dev/pts/18
lrwx------ 1 ljw ljw 64 714 19:50 2 -> /dev/pts/18
lrwx------ 1 ljw ljw 64 714 19:50 255 -> /dev/pts/18
  • 以文件描述符6打开文件
ljw@ljw-virtual-machine:~$ touch file
ljw@ljw-virtual-machine:~$ exec 6<> ./file
ljw@ljw-virtual-machine:~$ ll /proc/$$/fd
总用量 0
dr-x------ 2 ljw ljw  0 714 19:50 ./
dr-xr-xr-x 9 ljw ljw  0 628 20:27 ../
lrwx------ 1 ljw ljw 64 714 19:50 0 -> /dev/pts/18
lrwx------ 1 ljw ljw 64 714 19:50 1 -> /dev/pts/18
lrwx------ 1 ljw ljw 64 714 19:50 2 -> /dev/pts/18
lrwx------ 1 ljw ljw 64 714 19:50 255 -> /dev/pts/18
lrwx------ 1 ljw ljw 64 714 21:43 6 -> /home/ljw/file
  • 写入文件
ljw@ljw-virtual-machine:~$ echo "111111" > /proc/$$/fd/6
ljw@ljw-virtual-machine:~$ cat file
111111
  • 不释放文件描述符删除文件
ljw@ljw-virtual-machine:~$ rm file 
ljw@ljw-virtual-machine:~$ ll /proc/$$/fd
总用量 0
dr-x------ 2 ljw ljw  0 714 19:50 ./
dr-xr-xr-x 9 ljw ljw  0 628 20:27 ../
lrwx------ 1 ljw ljw 64 714 19:50 0 -> /dev/pts/18
lrwx------ 1 ljw ljw 64 714 19:50 1 -> /dev/pts/18
lrwx------ 1 ljw ljw 64 714 19:50 2 -> /dev/pts/18
lrwx------ 1 ljw ljw 64 714 19:50 255 -> /dev/pts/18
lrwx------ 1 ljw ljw 64 714 21:43 6 -> /home/ljw/file (deleted)
  • 还原
cp /proc/$$/fd/6 file
  • 释放文件描述符
exec 6<&-

管道

  • 匿名管道
ll /dev/ | grep sd
brw-rw----   1 root disk      8,   0 628 20:25 sda
brw-rw----   1 root disk      8,   1 628 20:25 sda1
brw-rw----   1 root disk      8,   2 628 20:25 sda2
brw-rw----   1 root disk      8,   5 628 20:25 sda5
  • 命名管道
ljw@ljw-virtual-machine:~$ mkfifo /tmp/tmpfifo
ljw@ljw-virtual-machine:~$ file /tmp/tmpfifo
/tmp/tmpfifo: fifo (named pipe)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值