2013-05-02 2 views
4

어떻게 Perl에서 버퍼링을 더 제어 할 수 있습니까? autoflush을 사용하여 버퍼를 즉시 플러시 할 수 있다는 것을 알고 있습니다. 그렇지 않으면 아무 것도 할 수 없으며 Perl이 그 것처럼 느껴질 때 플러시 할 수 있습니다.Perl에서 버퍼 플러시 타이밍을 제어하는 ​​방법

하지만 버퍼 크기를 변경할 수 있습니까? 아니면 매 30 초마다 강제로 플러시 할 수 있습니까?

파일 핸들 또는 STDOUT에 대해이 작업을 수행하는 방법을 알고 싶습니다. IO::Handle 설명서를 살펴 보았지만 필요한 정보를 찾을 수 없었습니다.

+0

STDOUT의 파일 핸들 객체를 얻을 수 있습니다. 예 : 'my $ fh = * STDOUT {IO}'에 의해. – amon

답변

9

그러나 버퍼 크기를 변경할 수 있습니까?

5.14 이전 버전에서는 모든 파일 핸들의 버퍼 크기가 4096 바이트였습니다.

5.14부터 Perl이 빌드 될 때 모든 파일 핸들의 버퍼 크기를 선택할 수 있습니다 (-Accflags=-DPERLIOBUF_DEFAULT_BUFSIZ=num_bytesConfigure으로 전달). 기본값은 8192 바이트입니다.

30 초마다 강제로 플러시 할 수 있습니까?

언제든지 강제로 플러시 할 수 있습니다.

use IO::Handle qw(); # Not needed in 5.14+ 
$fh->flush(); 
STDOUT->flush(); 
+0

추가 정보. – ikegami

관련 문제