Ouss4 commented on pull request #1794:
URL: https://github.com/apache/incubator-nuttx/pull/1794#issuecomment-696291691
@xiaoxiang781216 Did you see the commit message that added this part?
> I see the following behaviour on NuttX 7.26, where I have SD card mounted
on /flash and a directory called "frm" on it:
>
> opendir("/flash") returns (DIR *) 0x1000c580
> opendir("/flash/") returns (DIR *) 0x1000c5d0
> opendir("/flash/frm") returns (DIR *) 0x1000c620
> opendir("/flash/frm/") returns (DIR *) 0x0
>
> From POSIX specs for opendir(): "A pathname ... that ends with one or more
trailing slashes shall be resolved as if a single dot character ( '.' ) were
appended to the pathname."
>
> So for mount points, opendir() works correctly, but for FAT32 filesystem
it fails to open directory if the path has a trailing slash. I'm not quite sure
how to cleanly fix this. Stripping the trailing slash in opendir() would
require allocating a separate buffer, while fixing it in the FAT32 code seems
somewhat complex due to the short/long filename logic.
>
> It is not a big issue for me, I'm just going to fix it on the application
side. But still a small portability and standards compliance issue.
>
> NOTE: You would not see this problem if you call opendir() indirectly in
NSH (like 'ls -R /') because NSH contains logic to remove trailing '/'
characters from paths.
Is that not an issue anymore?
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]