Переносимость, должен ли CSV-файл использовать CRLF для перевода строки в Windows - PullRequest
1 голос
/ 25 августа 2011

Я разработал инструмент командной строки, который преобразует некоторые двоичные данные в текст CSV. Теперь я собираюсь перенести его на Windows, и я все еще не уверен, должен ли я писать "\ r \ n" переводы строк специально для Windows или просто '\ n' как обычно.

Я бы хотел иметь одинаковый вывод на всех платформах. Но я не специалист по Windows и не знаю проблем, которые могут возникнуть. Как вы думаете, обычный майнер данных в Windows мог бы жить без этого '\ r'?

Например, я попробовал "excel", "cmd" и "more" - не заметил проблем без '\ r'. Notpad пропустил, но кого это волнует?

у.е., Rudi

1 Ответ

3 голосов
/ 26 августа 2011

Хорошо, я решил больше не выводить переводы строк в Windows, даже на stderr и stdout. Кстати, я заметил, что запись в режиме O_BINARY примерно в два раза быстрее, чем по умолчанию O_TEXT.

Вот что я сейчас делаю:

#ifdef _WIN32
    #include <fcntl.h>
    #include <io.h>
#endif

...

#ifdef _WIN32
    /* never write CRLF line feeds */
    _setmode(_fileno(stderr),_O_BINARY);
    _setmode(_fileno(stdout),_O_BINARY);
#endif
...