C ++ Обработка файлов: разница между ios: app и ios: ate?

В чем разница между ios::ate и ios:app при записи в файл.
На мой взгляд, ios::app дает вам возможность перемещаться в файле, тогда как с ios::ate он может только читать / писать в конце файла. Это верно?

Это наоборот. Когда ios::ate установлен, начальная позиция будет концом файла, но вы можете искать ее позже. Когда установлено ios::app , все выходные операции выполняются в конце файла. Поскольку все записи неявно предваряются поисками, нет никакого способа писать в другом месте.

Они указаны следующим образом (в 27.5.3.1.4 из C ++ 11):

app пытается завершить работу перед каждой записью

открыто и стремиться к завершению сразу после открытия

С ios::app позиция записи в файле «липкая» – все записи находятся в конце, независимо от того, где вы ищете.

Это довольно хорошо документировано здесь .

ios::ate “устанавливает индикатор положения streamа в конец streamа при открытии”.

ios:app “установите индикатор положения streamа в конец streamа перед каждой операцией вывода.”

Это означает, что ios::ate помещает вашу позицию в конец файла при его открытии. ios::app вместо этого помещает его в конец файла каждый раз, когда вы очищаете свой stream. Если, например, две программы, которые пишут один файл журнала ios:ate , переопределяют все, что было добавлено в файл другой программой, так как ваша программа открыла его. ios:app будет переходить в конец файла каждый раз, когда ваша программа добавляет запись в журнал.

Приложение:

мы не можем переместить указатель. Он будет только в конце

Ел:

мы можем переместить указатель записи в любое другое место

Параметр ios::ate предназначен для операций ввода и вывода, а ios::app позволяет нам добавлять данные в конец файла.

  • Получить тип файла в Cocoa
  • Java NIO FileChannel и производительность и полезность FileOutputstream
  • Прокрутите все файлы с определенным расширением
  • ASP.Net MVC - чтение файла из HttpPostedFileBase без сохранения
  • Чтение имен файлов из каталога
  • Java, список только подкаталогов из каталога, а не файлов
  • Как заставить Logstash повторно просмотреть файл?
  • Поиск файлов в папке с помощью Java
  • Как я могу получить количество строк в файле эффективным способом?
  • открыть файл в эксклюзивном режиме в C #
  • Как я могу использовать синтаксис Bash в целевых файлах Makefile?
  • Interesting Posts

    Случайное исключение

    JSF возвращает пустую / непараметрированную страницу с открытым / исходным источником XHTML / XML / EL вместо вывода HTML-вывода

    Что именно вы делаете с функцией transclude и функцией clone linking?

    Как подсчитать количество строк на группу (и другую статистику) в группе pandas?

    Лучший уровень предупреждения компилятора для компиляторов C / C ++?

    Добавление пользовательских переключателей в android

    Обработка ошибок в Bash

    Просмотр Wrap_content внутри ConstraintLayout простирается за пределы экрана

    Советы по более эффективному расширению контейнера STL STL с пользовательскими методами

    Какие способы защиты электронной почты на сайтах от спам-ботов?

    Не удается получить доступ к pear.php.net от OSX Lion

    Назначить сочетание клавиш для запуска процедуры

    Почему Python 3.6.1 выбрасывает AttributeError: модуль ‘enum’ не имеет атрибута ‘IntFlag’?

    Частота обновления влияет на ЖК-экраны?

    Переносить жесткий диск с Windows 7 на новый ноутбук?

    Давайте будем гением компьютера.