linux 文本编辑器打不开,linux – 为什么我不能用文本编辑器读取/ dev / stdout?...

我刚开始在Linux上学习Everything是一个FileTM,这让我想知道如果我真的从/ dev / stdout读取会发生什么:

$cat /dev/stdout

^C

$tail /dev/stdout

^C

(^ C是我挂起后杀死程序).

当我尝试使用vim时,我收到了不可想象的消息:“/ dev / stdout”不是文件.喘气!

那么,当我尝试阅读这些“文件”时,为什么会出现挂断或错误消息?

解决方法:

why am I getting hangups

你没有得到cat(1)和tail(1)的“挂断”,它们只是在读取时阻塞. cat(1)等待输入,并在看到完整的行后立即打印:

$cat /dev/stdout

foo

foo

bar

bar

在这里我输入了fooEnterbarEnterCTRL-D.

tail(1)等待输入,只有当它能检测到EOF时才打印它:

$tail /dev/stdout

foo

bar

foo

bar

在这里我再次输入fooEnterbarEnterCTRL-D.

or error messages

Vim是唯一一个给你一个错误的人.它这样做是因为它对/ dev / stdout有runs stat(2),并且它发现它没有设置S_IFREG位.

/ dev / stdout是一个文件,但不是常规文件.事实上,内核中有一些舞蹈可以在文件系统中输入一个条目.在Linux上:

$ls -l /dev/stdout

lrwxrwxrwx 1 root root 15 May 8 19:42 /dev/stdout -> /proc/self/fd/1

在OpenBSD上:

$ls -l /dev/stdout

crw-rw-rw- 1 root wheel 22, 1 May 7 09:05:03 2015 /dev/stdout

在FreeBSD上:

$ls -l /dev/stdout

lrwxr-xr-x 1 root wheel 4 May 8 21:35 /dev/stdout -> fd/1

$ls -l /dev/fd/1

crw-rw-rw- 1 root wheel 0x18 May 8 21:35 /dev/fd/1

标签:linux,stdout,files

来源: https://codeday.me/bug/20190809/1631681.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值