Skip to content

Commit

Permalink
dirent.h: Add d_ino member to struct dirent
Browse files Browse the repository at this point in the history
This commit adds the `d_ino` member (`ino_t` type) to struct dirent
to make it compatible with the POSIX definition of the structure.
According to https://pubs.opengroup.org/onlinepubs/9799919799/, the
structure `dirent` shall include the following members:

```
ino_t  d_ino       File serial number.
char   d_name[]    Filename string of entry.
```

https://www.man7.org/linux/man-pages/man3/readdir.3.html also
states that:

"
Only the fields d_name and (as an XSI extension) d_ino are
specified in POSIX.1.  Other than Linux, the d_type field is
available mainly only on BSD systems.  The remaining fields are
available on many, but not all systems.
"

Although `d_ino` isn't being used by NuttX directly, the structure
`dirent` may be used by third-party applications and it's important
to have all the required members defined to avoid compatibility
issues.
  • Loading branch information
tmedicci committed Dec 2, 2024
1 parent 12fd5ec commit 96cd2e3
Show file tree
Hide file tree
Showing 2 changed files with 2 additions and 0 deletions.
1 change: 1 addition & 0 deletions include/dirent.h
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,7 @@

struct dirent
{
ino_t d_ino; /* file number */
uint8_t d_type; /* Type of file */
char d_name[NAME_MAX + 1]; /* File name */
};
Expand Down
1 change: 1 addition & 0 deletions include/nuttx/fs/hostfs.h
Original file line number Diff line number Diff line change
Expand Up @@ -152,6 +152,7 @@ struct nuttx_timespec

struct nuttx_dirent_s
{
ino_t d_ino; /* file number */
uint8_t d_type; /* type of file */
char d_name[CONFIG_NAME_MAX + 1]; /* filename */
};
Expand Down

0 comments on commit 96cd2e3

Please sign in to comment.