Top.Mail.Ru
Ответы

Помогите разобраться с кодом на языке программирования C и библиотекой libarchive

Возникла такая проблема, нужно написать программу которая будет проверять 3 файла настроек архивации данных и составлять список файлов которые нужно заархивировать, все функции работает корректно и правильно, кроме самой архивации, почитал документацию и понял что обращение должно быть через элементы char, но увы из-за разности названий папок и файлов требуется использовать переменные типа wchar_t, а библиотека libarchive плохо работает с ними, поэтому обращаюсь к вам за помощью, подскажите как правильно сделать, чтобы все работало, заранее спасибо!

Заранее извиняюсь что код не в текстовом виде, не вмещается по правилам сайта.

По дате
По Рейтингу
Аватар пользователя
Новичок

В описании функции wcstombs указано, что

Each character is converted as if by a call to wctomb


а для функции wctomb указано, что

The conversion is affected by the current locale's LC_CTYPE category.


Локаль "Russian", устанавливаемая в программе, плохо работает с UTF-кодировками. Лучше для конвертации использовать локаль по умолчанию ("", пустая строка).

Аватар пользователя
Гений

>но увы из-за разности названий папок и файлов требуется использовать переменные типа wchar_t
Не требуется, utf-8 в помощь, libarchive имеет поддержку такой кодировки через отдельный набор функций
>извиняюсь что код не в текстовом виде, не вмещается
Для этого его размещают на сервисах типа гитхаба и дают ссылку.

Аватар пользователя
Искусственный Интеллект

Обращаешься за помощью, чтобы мы исправили гвнокод от ChatGPT?
Умно...