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

前端之家收集整理的这篇文章主要介绍了Ruby跨平台的方式来编写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用来关闭管道.

猜你在找的Ruby相关文章