Можно ли создать файл без маркера EOF? - PullRequest
3 голосов
/ 10 февраля 2010

У нас есть приложение, которое читает плоский файл и анализирует данные. Этот файл не содержит информации заголовка или общих данных для проверки контрольной суммы. Поэтому я хотел бы создать контрольные примеры, чтобы убедиться, что наше приложение правильно обрабатывает «неполные» файлы.

Есть ли способ создать плоский файл без маркера EOF? Возможно, инструмент, который я могу использовать для удаления маркера EOF из существующего текстового файла?

Ответы [ 2 ]

5 голосов
/ 10 февраля 2010

Плоские файлы не содержат маркера конца файла.

Практически все современные файловые системы основаны на потоках, это просто набор байтов на диске, у них нет маркеров записи / файла.
Любой сигнал конца файла добавляется библиотекой std, читающей файл

Вы должны проверить, правильно ли он работает с неполными строками (то есть с 3 значениями, а не с 4) и отсутствующим / отличающимся концом строк (CR или LF, а не CR / LF)

1 голос
/ 10 февраля 2010

Стандартного символа EOF нет - EOF - это условие, возвращаемое методом, который читает файл. Например, в C getchar вернет системное отрицательное значение, когда достигнет конца файла.

Терминалы отправят обратно ASCII 4 (EOT, для конца передачи), когда они закончат передачу, но это вам не сильно поможет, так как у вас не будет EOT s в ваших файлах, чтобы начать с.

Итак, это хорошая новость для вас - все ваши файлы будут обрабатываться одинаково, и вам не нужно беспокоиться об обработке файлов без конца.

...