несколько процессов пишут в файл открытый как a+

Ответить
Аватара пользователя
Гость

несколько процессов пишут в файл открытый как a+

Сообщение Гость »

linux, несколько процессов, штук 5-10, пишут в один и тот же файл который они открывают в режиме a+
(логи они туда пишут)

вопрос - будут ли они блокировать друг друга если скажем им одновременно захочется в это файл записать?
насколько этот файл их тормозит? или OS "умная" и всё правильно разруливает?
последовательность записей в принципе не так уж важна, в каждой строке есть дата-время.

можно ли каким то способом сказать OS что то типа "для этого файла не блокируй, пусть пишут себе в любой последовательности" ?
Аватара пользователя
Гость

Re: несколько процессов пишут в файл открытый как a+

Сообщение Гость »

ну в одну и ту же консоль несколько процессов могут писать, не блокируя друг друга - чем файл-то хуже... 8-)
Ravinger
Сообщения: 4591
Зарегистрирован: 24.10.2011 16:02

Re: несколько процессов пишут в файл открытый как a+

Сообщение Ravinger »

Гость писал(а):ну в одну и ту же консоль несколько процессов могут писать, не блокируя друг друга - чем файл-то хуже... 8-)
Они пишут же туда наверное обычно не напрямую, а через сислог? :) Впрочем напрямую тоже наверное можно, но, мне кажется, каша не исключена.
Аватара пользователя
Гость

Re: несколько процессов пишут в файл открытый как a+

Сообщение Гость »

Ravinger писал(а): Они пишут же туда наверное обычно не напрямую, а через сислог? :) Впрочем напрямую тоже наверное можно, но, мне кажется, каша не исключена.
именно что напрямую.
open( имя_файла, a+ ) и поехали
каша не очень страшно, в каждой строке есть время и process ID
страшно что будут тормоза
Аватара пользователя
sss
Сообщения: 2120
Зарегистрирован: 22.09.2011 09:02
Ник с it-ru.de: верифицирован

Re: несколько процессов пишут в файл открытый как a+

Сообщение sss »

Гость писал(а):
Ravinger писал(а): Они пишут же туда наверное обычно не напрямую, а через сислог? :) Впрочем напрямую тоже наверное можно, но, мне кажется, каша не исключена.
именно что напрямую.
open( имя_файла, a+ ) и поехали
каша не очень страшно, в каждой строке есть время и process ID
страшно что будут тормоза
там каша будет не из строк, а из частей строк, слова перемешаны и буквы, никто не обещает, что строчки будут целыми
"Форум не читается в Гугле." (Irina123)
Переубедить вас мне не удастся, поэтому сразу перейду к оскорблениям.
Ravinger
Сообщения: 4591
Зарегистрирован: 24.10.2011 16:02

Re: несколько процессов пишут в файл открытый как a+

Сообщение Ravinger »

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

Re: несколько процессов пишут в файл открытый как a+

Сообщение Гость »

Вот тут обещают отсутствие "каши" при определенных условиях:

"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+

Сообщение Гость »

ну собственно вот:
http://stackoverflow.com/questions/1154 ... ic-in-unix" onclick="window.open(this.href);return false;

каши не будет.
Ответить