Ubuntu 16.04 LTS: Valor muito grande para o tipo de dados definido

2

Estou tentando executar o software Partiview, que é uma ferramenta de visualização para conjuntos de dados de partículas. Eu executei uma simulação grande que inclui milhões de partículas e o arquivo de dados resultante que estou tentando visualizar é de 4,26 GB. Quando tento executar o software, recebo o seguinte erro:

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

Meu entendimento é que o tamanho máximo padrão é de 2 GB para um sistema de 32 bits e preciso alterar as configurações do sistema para um sistema de 64 bits para arquivos maiores. Como exatamente eu faço isso no terminal, e 4GB é o tamanho máximo para um arquivo de dados em um sistema de 64 bits?

    
por Leigh K 04.04.2017 / 22:07

1 resposta

3

A mensagem de erro que você recebe corresponde ao código de erro EOVERFLOW , que no open chamada de sistema será retornada se um aplicativo de 32 bits tentar abrir um arquivo grande (> = 2 GB):

EOVERFLOW
pathname refers to a regular file that is too large to be opened. The usual scenario here is that an application compiled on a 32-bit platform without -D_FILE_OFFSET_BITS=64 tried to open a file whose size exceeds (1<<31)-1 bytes;

Como o texto sugere, os aplicativos de 32 bits podem acessar arquivos maiores, se eles forem compilados com as configurações necessárias (usando inteiros maiores para os tipos de dados relevantes e chamando as versões apropriadas das chamadas do sistema).

Parece que o aplicativo que você está executando não está compilado para suportar arquivos grandes. E não, você não pode mudar isso, exceto recompilando-o ou obtendo uma versão com suporte a arquivos grandes.

    
por 04.04.2017 / 23:12