我有这样的功能:我想获得时间的文件(的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