On Dec 18 22:01, Eli Zaretskii wrote: > > Date: Wed, 18 Dec 2013 20:17:57 +0100 > > From: Corinna Vinschen > > > > > > I don't know, but I doubt it. The filenames in case of calling the > > > > _wfopen functions are probably sent directly to the underlying WIn32 > > > > functions. > > > > > > I don't think they can do that, because it would mean that relative > > > file names, "../foo", etc. are forbidden for _wfopen. The CRT > > > functions must go through file-name normalization, so unless they > > > detect \\?\ file names up front and refrain from any processing, the > > > long file names will not work, because the normalization routines are > > > where these limitations live, AFAIK. > > > > There's a lot of theory here. Did you actually *try* it? > > No. Who can afford to try everything, unless they are paying you to > do that? Well, it might not take much more time than musings in email... > > I just did: > > > > =========================================== > > #include > > #include > > > > int main(void) > > { > > FILE *fp; > > > > fp = _wfopen (L"\\\\?\\C:\\Windows\\System32\\ntdll.dll", L"r"); > > if (!fp) > > printf ("_wfopen w/ long pathname fails, errno = %d\n", errno); > > else > > { > > printf ("_wfopen w/ long pathname works\n"); > > fclose(fp); > > } > > return 0; > > } > > =========================================== > > Thanks, that's good to know. But that's just one CRT function. There > are a gazillion of them, and I'm quite sure some use MAX_PATH of 260 > internally. Just grep the sources of the CRT functions. Sigh. Corinna -- Corinna Vinschen Cygwin Maintainer Red Hat