Ubuntu 16.04 LTS: 정의된 데이터 유형에 비해 값이 너무 큽니다.

Ubuntu 16.04 LTS: 정의된 데이터 유형에 비해 값이 너무 큽니다.

입자 데이터 세트를 위한 시각화 도구인 Partiview 소프트웨어를 실행하려고 합니다. 수백만 개의 입자를 사용하여 대규모 시뮬레이션을 실행했고 시각화하려는 결과 데이터 파일은 4.26GB였습니다. 소프트웨어를 실행하려고 하면 다음 오류가 발생합니다.

./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비트 시스템에 대한 시스템 설정을 변경해야 합니다. 터미널에서 이 작업을 어떻게 수행합니까? 64비트 시스템에서 데이터 파일의 최대 크기는 4GB입니까?

답변1

귀하가 받은 오류 메시지는 다음 EOVERFLOW에 있는 오류 코드 와 일치합니다.open시스템 호출32비트 응용 프로그램이 대용량(>= 2GB) 파일을 열려고 하면 다음이 반환됩니다.

EOVERFLOW
경로 이름은 너무 커서 열 수 없는 일반 파일을 참조합니다. 여기서 일반적으로 발생하는 현상은 -D_FILE_OFFSET_BITS=64 없이 32비트 플랫폼에서 컴파일된 응용 프로그램이 (1<<31)-1바이트보다 큰 파일을 열려고 시도한다는 것입니다.

텍스트에서 알 수 있듯이 32비트 응용 프로그램은 필요한 설정(관련 데이터 유형에 대해 더 큰 정수를 사용하고 올바른 버전의 시스템 호출 호출)으로 컴파일된 경우 더 큰 파일에 액세스할 수 있습니다.

실행 중인 응용 프로그램이 대용량 파일을 지원하도록 컴파일되지 않은 것 같습니다. 아니요, 다시 컴파일하거나 대용량 파일을 지원하는 버전을 얻지 않고는 변경할 수 없습니다.

관련 정보