Страница 1 из 1
несколько процессов пишут в файл открытый как a+
Добавлено: 17.11.2011 18:42
Гость
linux, несколько процессов, штук 5-10, пишут в один и тот же файл который они открывают в режиме a+
(логи они туда пишут)
вопрос - будут ли они блокировать друг друга если скажем им одновременно захочется в это файл записать?
насколько этот файл их тормозит? или OS "умная" и всё правильно разруливает?
последовательность записей в принципе не так уж важна, в каждой строке есть дата-время.
можно ли каким то способом сказать OS что то типа "для этого файла не блокируй, пусть пишут себе в любой последовательности" ?
Re: несколько процессов пишут в файл открытый как a+
Добавлено: 17.11.2011 18:50
Гость
ну в одну и ту же консоль несколько процессов могут писать, не блокируя друг друга - чем файл-то хуже...

Re: несколько процессов пишут в файл открытый как a+
Добавлено: 18.11.2011 09:22
Ravinger
Гость писал(а):ну в одну и ту же консоль несколько процессов могут писать, не блокируя друг друга - чем файл-то хуже...

Они пишут же туда наверное обычно не напрямую, а через сислог?

Впрочем напрямую тоже наверное можно, но, мне кажется, каша не исключена.
Re: несколько процессов пишут в файл открытый как a+
Добавлено: 18.11.2011 10:49
Гость
Ravinger писал(а):
Они пишут же туда наверное обычно не напрямую, а через сислог?

Впрочем напрямую тоже наверное можно, но, мне кажется, каша не исключена.
именно что напрямую.
open( имя_файла, a+ ) и поехали
каша не очень страшно, в каждой строке есть время и process ID
страшно что будут тормоза
Re: несколько процессов пишут в файл открытый как a+
Добавлено: 18.11.2011 10:55
sss
Гость писал(а):Ravinger писал(а):
Они пишут же туда наверное обычно не напрямую, а через сислог?

Впрочем напрямую тоже наверное можно, но, мне кажется, каша не исключена.
именно что напрямую.
open( имя_файла, a+ ) и поехали
каша не очень страшно, в каждой строке есть время и process ID
страшно что будут тормоза
там каша будет не из строк, а из частей строк, слова перемешаны и буквы, никто не обещает, что строчки будут целыми
Re: несколько процессов пишут в файл открытый как a+
Добавлено: 18.11.2011 13:01
Ravinger
sss писал(а):Гость писал(а):Ravinger писал(а):
Они пишут же туда наверное обычно не напрямую, а через сислог?

Впрочем напрямую тоже наверное можно, но, мне кажется, каша не исключена.
именно что напрямую.
open( имя_файла, a+ ) и поехали
каша не очень страшно, в каждой строке есть время и process ID
страшно что будут тормоза
там каша будет не из строк, а из частей строк, слова перемешаны и буквы, никто не обещает, что строчки будут целыми
Ага, именно это имел ввиду.

Для эксперимента попробуйте просто параллельно редиректнуть в один файл несколько плотных потоков.
Re: несколько процессов пишут в файл открытый как a+
Добавлено: 18.11.2011 14:25
Гость
Вот тут обещают отсутствие "каши" при определенных условиях:
"When appending to files from multiple threads or processes, the fwrites to that file are atomic under the condition that the file was opened in appending mode, the string written to it does not exceed the filesystem blocksize and the filesystem is local. "
http://stackoverflow.com/questions/2710 ... ingle-file" onclick="window.open(this.href);return false;
но откуда они это взяли? где это гарантируется? fwrite?
Re: несколько процессов пишут в файл открытый как a+
Добавлено: 18.11.2011 18:00
Гость
ну собственно вот:
http://stackoverflow.com/questions/1154 ... ic-in-unix" onclick="window.open(this.href);return false;
каши не будет.