mirror of
https://github.com/apache/nuttx-apps.git
synced 2026-08-01 20:29:00 +00:00
nshlib/nsh_fscmds: Display modification time in ls -l output
Fixes #17063 Add modification time display to ls -l long format output. The timestamp is shown as 'YYYY-MM-DD HH:MM' between the permission string and the file size, following the ISO long-iso format. Files with st_mtime == 0 (e.g., procfs, tmpfs pseudo-entries) skip the timestamp display to avoid showing a meaningless epoch time. Signed-off-by: hanzhijian <hanzhijian@zepp.com>
This commit is contained in:
parent
c503843e38
commit
f57aa7b4cf
1 changed files with 14 additions and 0 deletions
|
|
@ -37,6 +37,7 @@
|
|||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <unistd.h>
|
||||
#include <time.h>
|
||||
#include <string.h>
|
||||
#include <fcntl.h>
|
||||
#include <dirent.h>
|
||||
|
|
@ -599,6 +600,19 @@ static int ls_handler(FAR struct nsh_vtbl_s *vtbl, FAR const char *dirpath,
|
|||
nsh_output(vtbl, "%12" PRIdOFF, buf.st_size);
|
||||
}
|
||||
}
|
||||
|
||||
/* Display modification time in long format */
|
||||
|
||||
if ((lsflags & LSFLAGS_LONG) != 0 && buf.st_mtime != 0)
|
||||
{
|
||||
struct tm tm;
|
||||
char timebuf[20];
|
||||
time_t mtime = (time_t)buf.st_mtime;
|
||||
|
||||
gmtime_r(&mtime, &tm);
|
||||
strftime(timebuf, sizeof(timebuf), "%Y-%m-%d %H:%M", &tm);
|
||||
nsh_output(vtbl, " %s", timebuf);
|
||||
}
|
||||
}
|
||||
|
||||
/* Then provide the filename that is common to normal and verbose output */
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue