LINUX.ORG.RU

Программирование libsmbclient


0

0

Вот попробовал написать простенькую програмку на C которая использует libsmbclient. В общем все нормально(спасибо SourceNavigator`у), вопрос только один почему программа не обращает внимания на файл /etc/samba/smb.conf. Я также пробовал создать файл $HOME/.smb/smb.conf - абсолютно никакой реакции. Вопрос заключается в том что все что находит моя програмка(в частности имена файлов) все выводится на консоль в UTF8 в то время как у меня установлена локаль KOI8-R. Сервер samba работает как часики без всяких проблем. В конфиге smb.conf прописано ---- unix charset = KOI8-R dos charset = 866 ---- Вот кусок моей программы в частности инициализация: ---- #include <libsmbclient.h> #define DEBUG_LEVEL 2

static void smbs_auth_fn(const char *server, const char *share, char *workgroup, int wgmaxlen, char *username, int unmaxlen, char *password, int pwmaxlen);

int main(int argc, char** argv) { /* snip */ smbc_init(smbs_auth_fn, DEBUG_LEVEL); /* snip */ return 0; }

static void smbs_auth_fn(const char *server, const char *share, char *workgroup, int wgmaxlen, char *username, int unmaxlen, char *password, int pwmaxlen) { /* snip */ }

---- У меня стоит samba-3.0.4. Вот собственно и все. Думаю проблема ясна ;-)

★★★★

Re: Программирование libsmbclient

А как ты определил, что в консоль именно UTF8? У меня аналогичная проблема. Что не русские буквы, то отображает нормально, что русские, то пытается преобразовать в двужбайтную кодировку. Докопался до charcnv.c функции convert_string_internal. Там есть параметр allow_bad_conv, так вот он у меня во всяком случае, равен true, что порождает глюки. При allow_bad_conv = false получается всё ок. Может господа гуры разъяснят?

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.