Входы для записи массива символов EBCDIC
Если у меня есть массив символов в формате EBCDIC, и я хочу сохранить этот массив в файл. Я думаю об использовании fputs
вывести массив символов без предварительного преобразования его в другой формат.
Вопрос) Является ли использование fputs
законно для написания EBCDIC? Если нет, я должен преобразовать строку в ASCII перед выводом?
Я ищу в Интернете, но не могу найти, что сказать fputs
не должен использоваться для вывода данных EBCDIC.
2 ответа
Если ваш массив символов в формате EBCDIC является строкой в стиле c, то он заканчивается на \0
байт, то проблем нет.
fputs()
в двоичном режиме не зависит от формата, кроме \0
,
Предполагая, что ваша программа написана с использованием набора символов ASCII, важно, чтобы ваш выходной файл был открыт в двоичном режиме (например, "wb"), иначе \n
C не будет совпадать с EBCDIC, и возможны некоторые переводы.
С другой стороны, собираетесь ли вы что-то делать с этим файлом, кроме записи и, возможно, чтения?
Если ваш "массив символов в формате EBCDIC" не заканчивается \0
или врезали \0
байты, предлагаю вам простое использование fwrite()
, Снова убедитесь, что используете в двоичном режиме, если ваша система не является EBCDIC.
Что ж, fputs
принимает строку C, которая использует кодировку ASCII. Так что это не сработает. Я думаю, вам нужно написать файл, используя функцию более низкого уровня. Возможно использовать fwrite
написать файл напрямую, без использования строк. Вот справочная страница по fwrite.