zuxel
Новичок
У меня скрипт пишет несколькими процессами данные в файл, столкнулся с тем, что процессы пишут данные поверх того, что уже записали другие процессы, т.к. каждый помнит отступ от начала файла в только для своего дескриптора, подобного можно избежать, если файл открывать не единожды при создании процесса, а для каждой операции записи, как-то так:
Но м.б есть способ считывать количество байт уже записаных в файл и делать fseek?
Или существенной потери в скорости и ресурсах не будет если продолжать использовать вышеприведенный подход?
PHP:
$this->file = @fopen($this->getFilePath(), 'a');
if ( ! $this->file) {
throw new \Exception('Unable to open file');
}
if ( ! flock($this->file, LOCK_EX)) {
throw new \Exception('Unable to aquire file lock');
}
fputcsv($this->file, $r, ';');
flock($this->file, LOCK_UN);
fclose($this->file);
Или существенной потери в скорости и ресурсах не будет если продолжать использовать вышеприведенный подход?