powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Закрыть файл без сброса буферов
6 сообщений из 6, страница 1 из 1
Закрыть файл без сброса буферов
    #38704121
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fclose() прежде чем закрыть файл записывает грязные буфера. Есть ли функция, которая
просто закроет дескрптор и освободит структуру не тратя времени на сброс буферов,
поскольку следующей строчкой будет удаление этого файла?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Закрыть файл без сброса буферов
    #38704132
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно почитать в направлении fdatasync.

+У Роберта Лава в книге есть много материала на эту тему.
...
Рейтинг: 0 / 0
Закрыть файл без сброса буферов
    #38704151
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonМожно почитать в направлении fdatasync.
Проблема в том, что мне бы хотелось как раз обратного: закрыть файл перед его удалением и
к чёрту недописанное.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Закрыть файл без сброса буферов
    #38704172
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

Взять через fileno() дескриптор и закрыть через close() вместо fclose()
...
Рейтинг: 0 / 0
Закрыть файл без сброса буферов
    #38704393
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly MoskovskyDimitry Sibiryakov,

Взять через fileno() дескриптор и закрыть через close() вместо fclose()

Боюсь, что гарантировать это нельзя.
...
Рейтинг: 0 / 0
Закрыть файл без сброса буферов
    #38704421
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivБоюсь, что гарантировать это нельзя.
Смотря про какие буфера идет речь.
Если про тот что организуется в FILE над дескриптором - то я выше написал как его обойти.
Если про буфера в дисковом кеше ОС, то если данные оказались в дисковом буфере, то юзерская программа уже не контролирует их судьбу.
Можно недопустить использование дискового кеша. Есть соответствующие флаги у open() O_SYNC/O_DIRECT
Но это скорее всего замедлит и усложнит работу с файлом когда данные таки должны будут записаться на диск :)

Хотя я бы не заморачивался насчет дискового кеша.
Дело в том что закрытие файла не приводит к немедленному сбросу кеша на диск. Сброс производится асинхронно (кроме O_SYNC/O_DIRECT).
Поэтому на скорость закрытия это не должно влиять.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Закрыть файл без сброса буферов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]