在File.open中,似乎有两个系统,一个使用" r"," w"," wb",另一个使用& #34; RDONLY"," RDWR"。对于第二盘,我还没有找到#34; b"的旗帜。谢谢你的帮助。
"文件:: BINARY"
未初始化的常量File :: BINARY(NameError)
答案 0 :(得分:0)
这些标志称为mode
标志。二进制的模式标志是BINARY
。
答案 1 :(得分:0)
File::BINARY
,列于File constants。
编辑:在我的系统上,它有效:
$ ruby -e "puts File::BINARY"
0
(它没有做太多,但它在那里)。请注意:
如果底层平台没有定义常量,则不定义相应的Ruby常量。
所以你可能会受到操作系统的干扰?或许你拼错了?
答案 2 :(得分:0)
在任何ruby程序中试试这个:
p File::RDONLY
p File::CREAT
p File::BINARY
我明白了:
--output:--
0
512
1.rb:3: uninitialized constant File::BINARY (NameError)
或者,要查看File :: Constants在您的系统上实际定义的常量,您可以这样做:
File::Constants.constants.sort.each do |const|
puts "#{const} = #{File::Constants.const_get(const)}"
end
我明白了:
APPEND = 8
CREAT = 512
EXCL = 2048
FNM_CASEFOLD = 8
FNM_DOTMATCH = 4
FNM_NOESCAPE = 1
FNM_PATHNAME = 2
FNM_SYSCASE = 0
LOCK_EX = 2
LOCK_NB = 4
LOCK_SH = 1
LOCK_UN = 8
NOCTTY = 131072
NONBLOCK = 4
RDONLY = 0
RDWR = 2
SYNC = 128
TRUNC = 1024
WRONLY = 1
对我来说没有BINARY(OSX 10.6.8)。