Обработка файлов на С под разными операционными системами - PullRequest
2 голосов
/ 11 февраля 2012

Я работаю с файлами на C. Это очень, очень большие файлы.Я читаю и пишу в эти файлы (это просто отформатированные текстовые файлы).Я не даю им продолжения;Я просто говорю fopen("filename","r").

Теперь файл имеет содержимое вроде

1 line1 100
2 line2 200
.
.
20000 line 20000 14567

Проблема в том, что я выполняю его в Mac OS (Leopard, в частности), и когда я открываю егофайл (без расширения) в другом o / s (Windows, в частности), программа не может прочитать содержимое файла.Я предполагаю, что это потому, что форматирование файла отличается.

Какие-либо решения для стандартного формата файла или расширения, которые не конфликтуют с другими o / s?

1 Ответ

4 голосов
/ 11 февраля 2012

Если вы работаете с текстовыми файлами, помните, что в Unix и Unix-подобных ОС строки заканчиваются на \n, а в Windows они заканчиваются на \r\n.

Если вы осуществляете передачу файлов в виде открытого текста между операционными системами, ваш клиент может изменить окончания строк, чтобы они были совместимы с вашей целевой ОС. Вы можете установить передачу в двоичную форму, чтобы получить точное представление исходного файла в байтах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...