Я пишу эту программу, которая должна читать из файла, что-то делать с содержимым и записывать в выходной файл, сохраняя исходные окончания строк. Если файл имеет CRLF
окончание, выходной файл также должен иметь это. Моя проблема заключается в написании строки, заканчивающейся, особенно с реализацией CLISP
(она работает с gcl
). Когда я пытаюсь написать символ перевода строки (LF
), файл заканчивается CRLF
. Я предполагаю, что это как-то связано с реализацией CLISP
.
Мне нужен способ write the file in binary mode
, как в других языках. Стандартные функции ввода-вывода в спецификации принимают только необязательное имя потока и записываемое содержимое.
Вы можете воспроизвести это поведение примерно так:
(with-open-file (out-file "test.dat" :direction :output)
(setf ending #\linefeed)
(princ "First Line" out-file)
(write-char ending out-file)
(princ "Second Line" out-file)
(write-char ending out-file)
(princ "Second Line" out-file))
Мне нужно решение, которое работает в Windows.