当您发出此命令时:
find ok/ -exec ls -l -d {} \;
终端显示:
drwxrwxrwx 2 alexia alexia 4096 8 oct. 15 22:31 ok/
我尝试制作自己的 find 命令来对 stat.h 执行相同的操作:
[...] //Other file information
struct stat fileStat;
stat(path,&fileStat)
char buffer[20];
struct tm *time
time = localtime(&(fileStat.st_mtime));
strftime(buffer, 20, "%b %e %Y", time);
printf("%s", buffer);
它显示:
[...]
8 Oct 15 22:31 ok/
月份格式不好,我不知道如何正确。
干杯
最佳答案
默认情况下,C 程序使用 C 语言环境运行。看起来您想要不同的区域设置,因此请使用 setlocale()
与另一个语言环境一起使用。最简单的是由空字符串指定。 (区域设置的“C”值指定 C 翻译的最小环境;区域设置的“”值指定特定于区域设置的 native 环境。其他实现定义的字符串可以作为 setlocale 的第二个参数传递。 ):
setlocale(LC_TIME, “”);
这只影响时间;您可以使用LC_ALL
来更改所有内容。
关于c - 如何更改 ls -l 自定义命令的月份格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53306290/