입력 파일 크기 = 2,442,541
출력 파일 크기 = 1,146,881
,174,515 을 trunacted되고
PHP 함수 filesize (file_in.txt)를 사용할 때, 터미널 세션에 표시된 올바른 크기가 아니라 반환 된 값 = 1,146,881입니다. filesize()를 호출하기 전에 clearstatcache()를 호출했습니다.
흥미롭게도 filesize는 file_in의 크기를 file_out이 잘리는 값으로보고합니다.
Linux _x86_64 64 비트 PHP 버전을 실행 중이므로 파일 크기가 2MB 인 경우 32 비트 파일 크기 제한 문제가 없어졌습니다. I WWW 사용자 데이터로서 터미널 세션에서 정렬 명령을 실행할 때
는 출력 파일을 입력 파일 잘리는 같은 크기이다.
나는 그것이 가능한 PHP의 버퍼 제한을 우회 바라고, 간부에서 호출하는 쉘 스크립트를 작성했지만,이 같은 잘린 출력 파일이 있습니다.
나는 TOP CPU 및 메모리 사용량을 볼 수있는 별도의 터미널에서 실행,하지만 출력을 절단하지 않는 단말기에서 실행되는 coammdn 때문에, 이것은 PHP의 문제가 될 것으로 보인다.
이 문제를 해결하기 위해 확인해야하는 모호한 구성 .ini 설정이 있습니까?
감사
추가 정보 : 내가 잘립니다되지 않는 출력 파일을 실현 아니라, 입력 파일이 완전히 EOF 때까지 읽을 수 없습니다.
이 도움이 될 수있다 : http://www.computerhope.com/unix/usort.htm, "SIZE 다음에 곱하기 접미사 뒤에 " –
제안 해 주셔서 감사합니다. 그러나 해당 웹 페이지에는 SIZE와 관련된 -S (버퍼 크기) 옵션이 나열되지 않습니다. 그러나 귀하의 제안을 조사 할 때, 다음과 같은 웹 페이지를 발견했습니다 : https://www.gnu.org/software/coreutils/manual/html_node/sort-invocation.html, 버퍼 크기에 대한 더 나은 설명을 제공하므로 귀하의 노력은 도움이됩니다. 다음에 버퍼 크기 테스트를 시도 할 것입니다. 또한 절손 (truncation)을 이해하는 데 도움이 될 수있는 --debug 옵션이 있음을 알게되었습니다. –
N.B> --debug를 동시에 사용할 수 없습니다 - 출력 파일이 사용 중입니다. 디버그는 stndout (즉, 터미널 세션 화면)을 사용합니다. –