Discussion:
File traversal on FAT32 or NTFS
Eli Zaretskii
2018-06-07 15:45:34 UTC
Permalink
Date: Thu, 07 Jun 2018 14:22:12 +0100
Should I expect the procedure ftw to work on Microsoft file systems?
A call that works on Unix seems to hang on M/S
Up front, I cannot see why should it not work. Can you show an
example that hangs?
And, for good measure, what is the "command processor" that will be
invoked by the system and system* procedures?
The same one invoked by the C library function 'system', i.e. cmd.exe
by default.
Richard Shann
2018-06-08 11:27:37 UTC
Permalink
Date: Thu, 07 Jun 2018 14:22:12 +0100
Should I expect the procedure ftw to work on Microsoft file
systems?
A call that works on Unix seems to hang on M/S
Up front, I cannot see why should it not work.  Can you show an
example that hangs?
Thanks for the reassurance - I just wanted to check that I wasn't
wasting my time before starting to dig into it - my example is very
complex - but I've now run it under wine and I see it's not hanging but
complaining about
(#f Unbound variable: ~S (getuid) #f)
(this is Guile 1.8). As long as those Microsoft file systems are, in
principle, supported, I'll carry on digging.
And, for good measure, what is the "command processor" that will be
invoked by the system and system* procedures?
The same one invoked by the C library function 'system', i.e. cmd.exe
by default.
Ok, well thinking about it I can use system* which then by passes that,
I don't use any globbing.

Thanks again

Richard
Eli Zaretskii
2018-06-08 13:05:28 UTC
Permalink
Date: Fri, 08 Jun 2018 12:27:37 +0100
Should I expect the procedure ftw to work on Microsoft file systems?
A call that works on Unix seems to hang on M/S
Up front, I cannot see why should it not work.  Can you show an
example that hangs?
Thanks for the reassurance - I just wanted to check that I wasn't
wasting my time before starting to dig into it - my example is very
complex - but I've now run it under wine and I see it's not hanging but
complaining about
(#f Unbound variable: ~S (getuid) #f)
(this is Guile 1.8). As long as those Microsoft file systems are, in
principle, supported, I'll carry on digging.
If that's Guile 1.8, get version 2.x. There were lots of fixes in
2.0.x specifically for MS-Windows, so I wouldn't expect 1.8 to work
well on Windows.

FWIW, getuid works fine here in Guile 2.0.11 compiled for Windows.
And, for good measure, what is the "command processor" that will be
invoked by the system and system* procedures?
The same one invoked by the C library function 'system', i.e. cmd.exe
by default.
Ok, well thinking about it I can use system* which then by passes that,
I don't use any globbing.
I think system and system* both had "issues" before Guile 2.0.12, so
once again, I suggest to upgrade.

Loading...