Владислав Васильевич
Текст голосового сообщения:
От Владислав С. :
В смысле то ничего. А если я фейковый напишу, который будет, ну, солидный чей-то.
ㅤ
То есть ты авторизуешься дважды. В офисе оператора и в через ussd. Так?
Евгений
Евгений
Евгений
Владислав Васильевич
Текст голосового сообщения:
От Владислав С. :
Если я напишу фейковый ИНН который либо будет чьим-то чужим. То есть ээ узнаю ИНН другого человека, а не себя. который уже является этого вашего оп соса. и по нему авторизуюсь. Что будет? Что-то будет? Нет, как вообще телефон проверить свой ты написал или чей-то чужой.
Евгений
ㅤ
Евгений
Ruslan
SetPf
Слуште. А как насильно записать буфер файла в носительн?
Сценарий такой.
При перезагрузке - проходит сигнал и все пишущие в файл модули закрывают (fclose) файлы и докладывают о готовности
SetPf
После чего через 500мс стреляет ребут.
SetPf
По факту вижу, что часть последней инфы не записана в файлы.
SetPf
Такое ощущение, что файловая система держит данные в буфере, не желая их записать до какого-то момента
SetPf
и резетится вместе с ними
Евгений
а есть такое типа - flush ?
SetPf
неа
Евгений
тогда надо погадать над используемой библиотекой =)
Евгений
может быть вообще отмонтировать файловую систему
Anton
SetPf
SetPf
я на самом деле не оч понял, чем они фактически различаются
SetPf
фсинк как я понял это больше про совместный доступ и чтение
Anton
fflush помог
всё равно рекомендую fsync, он, обычно, глобальнее
Anton
fflush -- элемент stdio, fsync -- работает на уровне файлхендла
SetPf
а есть где in-depth почитать?
SetPf
я чет по апи референсу читаю и не оч сходу разница чувствуется в контексте записи
Anton
но если ты пользуешься именно stdio, то fflush лучше
SetPf
не, я fwrite пользуюсь
SetPf
вроде это имелось ввиду
Anton
fwrite -- stdio
Anton
он с буфером внутренним. именно его сливает fflush
SetPf
блин вот и незнание этих ваших линухов и ос всплывает...
Anton
имеет смысл делать их обойих
SetPf
ок
Anton
fflush(fp); fsync(fileno(fp));
Anton
первое сольёт буфер приложения, второе сольёт всё на уровне ядра
Anton
все кеши устройства
ㅤ
ㅤ
Anton
> calling fflush on a POSIX system does not imply that fsync will be called.
их надо обоих звать
ㅤ
Точнее просто sync
ㅤ
В командной строке пишешь он все сливает
ㅤ
Смотря какие задачи у человека
Anton
ㅤ
Допустим базы данных критические постгреса я использую только в случае fsync
Anton
мы всё ещё про ембеддед?
ㅤ
А я не понял о какой конкретно он платформе.
Anton
возможно его переносят
ㅤ
малинка у меня тут лежит и порой бесит, поменял один файлик - дернул малинку по питанию - файлика нет)
Anton
Точнее просто sync
мы всё ещё о программировании? кстати, простой синк тоже есть, сливает все кеши устройств вообще.
ㅤ
Anton
ㅤ
Ну какая разница хоспаде. Что сискол, что ком строка который его вызывает. Не придирайся
Anton
https://man7.org/linux/man-pages/man2/sync.2.html
ㅤ
Я в курсе капитан
Anton
у меня однажды опыт был. свой логгер, кучка проектов в контейнерах, контейнеры все на ссд. и добавил я в логгер чтобы он после каждой записи делал fsync, контейнеры просто встали колом.
ㅤ
Почему? Диск был домашний и не вывез иопсы?
Anton
ㅤ
А зачем тебе fsync? Там не аппаратный рейд был?
ㅤ
Точнее наоборот. Аппаратный рейд, но fsync не должен так класть сервак
ㅤ
В кеш рейда улетает. Либо рейд был в режиме WT
Anton
рейд был зеркалом из двух ссд
Anton
синк собстна потому что файл то не закрывается, чтобы кеши ос слила на диск
Anton
короче, добавление фсинка ложило сервак и я его убрал. типа пропадёт что-то в логе последнее, и хрен с ним. сделал правда закрытие-открытие файла на каждую запись
ㅤ
fsync в случае рейда (если он аппаратный) сливает из кеша ос в кеш рейда
ㅤ
Если кеш рейда был отключен (WT режим), то очень печально это будет, да
ㅤ
А так диски были таки сата?
Anton
то был примерно 2014 год, нвме ещё не предлагался, вроде
ㅤ