Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
假设您收到一个打开的File对象,但您不知道它是以什么类型的模式打开的(例如'r'、'w'、'w+')。
File
您将如何确定文件以哪种模式打开?
据我所知,没有IO办法解决这个问题,但我可能会遗漏一些东西。
IO
如果有必要为每种模式编写单独的测试,那么理想情况下,它应该是一个if不会修改指针位置(或文件内容)的单一方法或一个衬里语句。
if
您可以尝试以下任何一种:
将单个字符写入文件描述符,然后取消查找;如果成功,则处于写入模式,否则会引发异常。
尝试并收集该fstat方法的信息。
fstat
Ruby File 对象具有以下方法:
File(filename).readable? File(filename).writeable? File(filename).executeable?