Ubuntu 16.04 LTS:值对于定义的数据类型来说太大

Ubuntu 16.04 LTS:值对于定义的数据类型来说太大

我正在尝试运行 Partiview 软件,它是粒子数据集的可视化工具。我运行了一个包含数百万个粒子的大型模拟,我尝试可视化的结果数据文件为 4.26 GB。当我尝试运行该软件时,出现以下错误:

./partiview sim_evo_128_snap50.cf 
./leigh_data/dm128_evolution_50snap.speck: can't open: Value too large for defined data type

我的理解是,32位系统的默认最大大小是2GB,对于更大的文件,我需要更改64位系统的系统设置。我到底如何在终端中完成此操作,4GB 是 64 位系统中数据文件的最大大小?

答案1

您收到的错误消息与错误代码相匹配EOVERFLOW,该错误代码位于open系统调用如果 32 位应用程序尝试打开大 (>= 2 GB) 文件,则会返回:

EOVERFLOW
路径名指的是太大而无法打开的常规文件。这里通常的情况是,在没有 -D_FILE_OFFSET_BITS=64 的 32 位平台上编译的应用程序尝试打开大小超过 (1<<31)-1 字节的文件;

正如文本提示的那样,32 位应用程序可以访问更大的文件,前提是它们是使用必要的设置进行编译的(对相关数据类型使用更大的整数,并调用正确版本的系统调用)。

您正在运行的应用程序似乎未编译为支持大文件。不,您无法更改它,除非重新编译它或获取支持大文件的版本。

相关内容