windows – Lua – io.open()最多只有2 GB?
发布时间:2020-12-14 01:43:24 所属栏目:Windows 来源:网络整理
导读:我使用Lua脚本来确定文件大小: local filesize=0local filePath = "somepath.bin"local file,msg = io.open(filePath,"r")if file then filesize=file:seek("end") file:close() filePresent = trueend 但是,这似乎只适用于高达2GB的文件.对于较大的文件,fi
我使用Lua脚本来确定文件大小:
local filesize=0 local filePath = "somepath.bin" local file,msg = io.open(filePath,"r") if file then filesize=file:seek("end") file:close() filePresent = true end 但是,这似乎只适用于高达2GB的文件.对于较大的文件,filesize总是为零. io.open有限制吗?如果是这样,我怎么能解决这个问题呢? 在Windows Server 2008 R2 64位上运行Lua 5.1.4
问题不在io.open中,而是file:seek.您可以像这样检查错误:
filesize,err = file:seek("end") if not filesize then print(err) end 错误消息可能是无效参数.这是因为对于大于2GB的文件,其大小超过了32位长度可以容纳的大小,这导致C函数fseek无法工作. 在POSIX系统中,Lua使用fseeko,它在fseek中取大小为off_t而不是long.在Windows中,有一个_fseeki64,我想这类似的工作.如果这些不可用,则使用fseek,这会导致问题. 相关来源是 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- ListBox背景颜色(XAML / WinRT / Metro)
- 无法在Windows上打开使用Cygwin修改的文件,在ls -l输出中提
- windows-server-2012 – Solidworks:此虚拟环境不支持激活
- windows-8 – Windows 8商店应用WinRT本地Toast通知未显示
- 从作为iSCSI目标公开的ZFS池中恢复NTFS数据
- windows-server-2012-r2 – 我找不到有关2012 R2事件ID的25
- 如何在Windows(ffmpeg等)中使用Java快速截取桌面?
- windows – Ghostscript PDF批量压缩
- 在Windows操作系统的文件管理器中集成Azure DevOps Server
- windows – 如何以管理员模式运行应用程序?