PHP는 AFAIK 파일의 fsync에 특정 기능이 없습니다. 그러나 나는 PHP에서 추가 할 로그 파일을 fsync 할 충동을 느끼고 있습니다.PHP에서 fsync 또는 fdatasync하는 방법은 무엇입니까?
fsync를 발생시키는 것으로 알려진 기본 PHP 함수가 있습니까? 아니면 모든 해결 방법?
PHP는 AFAIK 파일의 fsync에 특정 기능이 없습니다. 그러나 나는 PHP에서 추가 할 로그 파일을 fsync 할 충동을 느끼고 있습니다.PHP에서 fsync 또는 fdatasync하는 방법은 무엇입니까?
fsync를 발생시키는 것으로 알려진 기본 PHP 함수가 있습니까? 아니면 모든 해결 방법?
일반 파일을 다루는 경우 fclose으로 파일을 닫으면 변경 사항이 디스크에 적용됩니다. 로그 메시지가 디스크에 기록되도록하려면 로그에 기록 할 때마다 파일을 열고 닫습니다.
system log에 대한 쓰기 작업은 즉시 수행해야하며 OS에서 처리합니다.
나는 두려워 그것이 가능하지 않습니다. 소스에있는 fsync
에 대한 유일한 언급은 일반 파일 시스템 스트림에 대한 flush
작업의 구현에 있으며 단지 fsyncing이 아니라고 명시 적으로 말하면서 fflush
만 호출하면됩니다.
정말 필요한 경우 PHP 확장 프로그램을 사용해야합니다.
커널이 버퍼를 관리하는 방법에 익숙하지는 않지만 사실입니다. 참고 문헌이있는 경우 제공하십시오. – Artefacto
@Artefacto : 정확합니다. PHP 코드베이스를 살펴본 결과 파일 작업을 처리하는 fsync에 대한 명시 적 호출이 없습니다. @ korkman, PHP 확장은 갈 길이 멀다. – advait
파일 닫기가 반드시 필요한 것은 아닙니다. Ref .: http://www.linux-mtd.infradead.org/doc/ubifs.html#L_writeback – Simon