私はこのような機能を持っている(CTIME(..)を?):私はls -l
のような出力がありません取得しようとしている私は時間取得したい
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(" ");
}
を。しかし、ctime(const time_t *clock)
は英語で文字列を返します(月は "12月" "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
は私が私のft_display_time()
目的球のほとんどを変更する必要があります知っているstat.st_atimespec
またはstat(filename, &stat)
またはlstat(filename, &stat)
によって返さstat.st_mtimespec
に等しいですが、私はctime()
出力を得るためのどのような方法があるかどうかを知りたいです正しい言語。
文字列表示ルーチンを使用する前に 'setlocale(LC_ALL、NULL)'を使用してロケールを設定しようとしましたか? – Petesh
はい!私は試しましたが、うまくいきませんでした... – LotoLo