我有這樣的功能:我想獲得時間的文件(的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)
將返回一個英文字符串(所以月份顯示爲「Dec」「Jan」「Aug」...),而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(filename, &stat)
或lstat(filename, &stat)
我知道我將不得不改變我的大部分ft_display_time()
funtion的返回stat.st_atimespec
或stat.st_mtimespec
,但我想知道是否有越來越ctime()
輸出中的任何方式正確的語言。
您是否嘗試在使用字符串顯示例程之前使用'setlocale(LC_ALL,NULL)'設置語言環境? – Petesh
是的!我嘗試過,但沒有奏效...... – LotoLo