Cygwin pathconf() query filesystem kernel data? Re: How does Cygwin detect MSFT NFSv3 file system? Re: Weird (path) problems with cygwin test release 3.5.0-0.384.g9939aa7d0945.x86_64 ...
Sat Aug 19 17:50:38 GMT 2023
On 2023-08-18 07:09, Martin Wege via Cygwin wrote:
> On Fri, Aug 18, 2023 at 10:44 AM Corinna Vinschen via Cygwin
> <email@example.com> wrote:
>> On Aug 17 20:49, Martin Wege via Cygwin wrote:
>>> On Mon, Aug 14, 2023 at 10:56 PM Corinna Vinschen via Cygwin
>>> <firstname.lastname@example.org> wrote:
>>>> and the result is the same. Note that Cygwin supports MSFT NFSv3 but
>>>> not CITI NFSv4.1 internally. No gurantee that Cygwin always does what
>>>> is necessary for that other NFS.
>>> 1. How does Cygwin detect whether something is a MSFT NFSv3, or not?
>>> Cygwin /bin/mount lists the CITI NFSv4.1 as 'nfs', so there *IS*
>>> something which detects that?
>> The filesystem name returned by NtQueryVolumeInformationFile is "NFS".
>> If any other NFS returns the same filesystem name, it will be treated
>> just like MSFT NFSv3.
>>> 2. Are Cygwin soft link handing depend on MSFT NFSv3 or not, i.e. does
>>> the Cygwin soft link code behave differently for MSFT NFSv3 file
>> Yes. NFS doesn't support symlink creation and symlink reading via
>> the usual functions, because Windows symlinks are created as reparse
>> points. NFS doesn't support reparse points. So the developers of
>> the MSFT NFS client had to invent their own way to create and
>> read NFS symlinks:
>>> 3. Does Cygwin implement the pathconf() api?
>> Yes. Surprisingly, you can check this yourself by just calling the
>> function and trying to compile your code.
> Apologies, how do we say in German? "Ich sollte meine Frage konkretisieren:"
> Does the Cygwin implementation of pathconf() support query data of the
> underlying filesystem based on data from the kernel, as UNIX does? So
> pathconf() returns different values for NTFS, ReFS, or Windows builtin
> I am asking, because as far as I know the Linux implementation is not
> a syscall, and instead glibc guesses values based on builtin static
> data, and whatever fstatfs() has to offer. Compared to that UNIX
> (Solaris, AIX, HPUX, ...) have pathconf() as a syscall, and actually
> ask the filesystem itself.
Many library functions are implemented as documented either in the Cygwin
packages cygwin-doc and man-pages-posix available for installation; and use as
e.g. `man 3p fpathconf`, also available online at:
and for comparison and reference we make Cygwin package man-pages-linux
available for installation; and use as e.g. `man -m linux 3 fpathconf`, also
available online at:
suggestions for setup are in the package announcements made every 9-12 weeks
when the latest Linux man-pages package is released and updated on Cygwin.
Please also note that the getconf(1) program is installed as part of Cygwin and
can access f/pathconf variables associated with a pathname argument, as shown in
getconf(1) `man 1 getconf` and getconf(1p) `man 1p getconf`.
Take care. Thanks, Brian Inglis Calgary, Alberta, Canada
La perfection est atteinte Perfection is achieved
non pas lorsqu'il n'y a plus rien à ajouter not when there is no more to add
mais lorsqu'il n'y a plus rien à retirer but when there is no more to cut
-- Antoine de Saint-Exupéry
More information about the Cygwin