gpt4 book ai didi

Ruby跨平台EOF符号的写法

转载 作者:数据小太阳 更新时间:2023-10-29 07:01:45 25 4
gpt4 key购买 nike

在 Ruby 中是否有一种平台无关的方式将 EOF 符号写入字符串。在 *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 将按字面意义将 control-D 字符插入到文件中。输入 world 并回车后,^D 关闭管道。该文件最终为 12 个字节长的 10 个字母,另外两个用于 ^D 和换行符。最后的 ^D 不会在文件中结束。终端/外壳仅使用它来关闭管道。

关于Ruby跨平台EOF符号的写法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1081327/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com