加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Ruby跨平台的方式来编写EOF符号

发布时间:2020-12-16 21:11:15 所属栏目:百科 来源:网络整理
导读:是否有一种独立于平台的方式将EOF符号写入 Ruby中的字符串.在* nix我相信符号是^ D,但在Windows中是^ Z,这就是我问的原因. 解决方法 EOF不是一个角色,它是一个国家.终端使用控制字符来表示此状态(C-d).没有这样的东西是“读一个EOF角色”和写一个相同的东西.
是否有一种独立于平台的方式将EOF符号写入 Ruby中的字符串.在* nix我相信符号是^ D,但在Windows中是^ Z,这就是我问的原因.

解决方法

EOF不是一个角色,它是一个国家.终端使用控制字符来表示此状态(C-d).没有这样的东西是“读一个EOF角色”和写一个相同的东西.如果您正在写文件,请在完成后关闭它.见 mailing list post:

It sounds like you are thinking of EOF
as an in-band but special character
value that marks the end of file. It
is better to think of it as an
out-of-band sentinel value. In C,EOF
is usually -1 and the associated API
specifies integer return values so
that EOF is guaranteed to never be
confused with a valid in-band value.

这里有一些证据(在Unix上这样做):

$cat > file
hello^V^Dworld
^D
$cat file
helloworld

键入^ V ^ D将控制字符字面插入文件中.键入world并输入后,^ D将关闭管道.该文件最终为12个字节长10个字母,另外两个用于^ D和换行符.最终^ D不会在文件中结束.它只是被终端/ shell用来关闭管道.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读