У меня есть функция, как это:Я хотел бы получить время (CTIME (..)?) Файла на языке принимающей
void ft_display_time(struct timespec ttime)
{
char *time_long;
time_long = ctime(&ttime.tv_sec);
if (time_long)
{
ft_printf("%.3s ", time_long + 4);
ft_printf("%.2s ", time_long + 8);
ft_printf("%.5s ", time_long + 11);
}
else
ft_putstr(" ");
}
Я пытаюсь получить выход как ls -l
делает. Но ctime(const time_t *clock)
вернет строку на английском языке (так что месяца отображаются как «Дек» «Ян» «Авг» ...), а ls -l
выводит месяцы в формате основного языка (в моем случае итальянский).
Пример:
./myprog --long file
-rw-r--r-- 1 lotolo staff 0 Sep 17 19:55 c
/bin/ls -l
-rw-r--r-- 1 lotolo staff 0 17 Set 19:55 c
Как я мог иметь выход в формате языка хоста?
Например, ttime
равно stat.st_atimespec
или stat.st_mtimespec
возвращенного stat(filename, &stat)
или lstat(filename, &stat)
Я знаю, что я должен изменить большинство моих ft_display_time()
Funtion, но я хотел бы знать, если есть способ получить ctime()
выход в правильный язык.
Вы пытались установить языковой стандарт с помощью 'setlocale (LC_ALL, NULL)' перед использованием процедур отображения строк? – Petesh
Да! Я пробовал, но это не сработало ... – LotoLo