Войти
ПрограммированиеФорумОбщее

Запись файла лога (2 стр)

Страницы: 1 2
#15
11:36, 13 июня 2018

Aroch
> тебе уже сказали, перехватывай segfault и обрабатывай в нем, нет большого
> смысла каждый раз делать fflush()

а если подвисло ?


#16
11:53, 13 июня 2018

innuendo
> а если подвисло ?
Ловишь SIGTERM и тогда пишешь на диск. Если конечно кто-нибудь прибьёт процесс :D

#17
12:40, 13 июня 2018

Ну или реально, перекачивай свой лог трубами/сокетами в отдельную программу, fflush() на трубах/сокетах дешёвый, а у простого логопрокси меньше шансов сломаться.

#18
23:08, 13 июня 2018

Aroch
> насиловать винты.
А кто сказал, что оно сразу на винт пишется?)

#19
0:46, 14 июня 2018

Blew_zc
> А кто сказал, что оно сразу на винт пишется?)
http://www.cplusplus.com/reference/cstdio/fflush/

#20
1:51, 14 июня 2018

Aroch
Знаю я таких. На линуксе они еще флешку сразу дергают, как написали команду umount, а то и вовсе не пишут.

#21
1:56, 14 июня 2018

Любят же люди себе проблем искать. Решение же тупое-тупое. И самое главное всегда работающее. Сама ОС его реализует. Но нет, нужно обязательно свой рантайм присобачить...

Делаешь под Виндой, так не будь бараном - юзяй WriteFile. И, о чудо, ничего не теряется, запись видна сразу, никакого флуша не надо. Если пишешь до 4КБ за раз то оно ещё и потоко-безопасное.

#22
2:23, 14 июня 2018

Хочу немного похвастать :) вот мой зачаток лога:

+ Показать

со временем будет наворачиваться )))

#23
2:38, 14 июня 2018

Bishop
> Делаешь под Виндой, так не будь бараном - юзяй WriteFile. И, о чудо, ничего не
> теряется, запись видна сразу, никакого флуша не надо.
Что? Нет, неправда, откуда ты это вообще взял?
При обычном использовании, он работает один-в-один, как fwrite, включая буферизацию в юзерспейсе; а чтобы поиметь полезности с дополнительного контроля - нужно соответствующе его обвесить, вплоть до своей собственной системы буферизации.
В любом случае, логгеру от этого ни капли не легче.

#24
3:12, 14 июня 2018

Blew_zc
> Знаю я таких. На линуксе они еще флешку сразу дергают, как написали команду
> umount, а то и вовсе не пишут.
факт остается фактом ос будет пытаться записать сразу после fflush, а то насколько у нее это получится это уже дело десятое.

Страницы: 1 2
ПрограммированиеФорумОбщее

Тема в архиве.