>Можно ли сделать так, чтоб конструкция:
>time(&t);
>s = asctime(localtime(&t));
>
>выдавала строку даты на русском языке в koi8r ? сейчас - на
>английском
>Подстановка перед этим всем setlocale(LC_ALL, "ru_RU.KOI8-R"); результат не дала.
>За что тогда отвечает эта setlocale если не за такие вещи?
Ты прав, судя по всему семейство функций asctime/ctime/etc не локализовано (это именно их проблема, а не setlocale). Попробуй strftime, она точно локализована, по крайней мере, у меня работает:
if (setlocale(LC_ALL, "ru_RU.KOI8-R")==NULL)
{
perror("setlocale() : ");
return 1;
}
#define MAX_STRING_LEN 1000
char time_buf[MAX_STRING_LEN+1]={0};
struct tm tm_now;
time_t now = time(NULL);
localtime_r(&now, &tm_now);
strftime(time_buf, MAX_STRING_LEN, "%a %b %d %H:%M:%S %Y", &tm_now);
printf("%s\n", time_buf);