On Tue, 22 Jan 2019 10:41:57, Corinna Vinschen wrote: > On Jan 22 10:25, Houder wrote: [snip]
> > Curious! It fails (for me) on W7 ... > > It works for me just as well on W7: > > $ uname -a > CYGWIN_NT-6.1 vmbert764 2.12.0(0.333/5/3) 2019-01-21 22:47 x86_64 Cygwin > $ ./stca /dev/fd/0 <<EOF > ? bla > ? EOF > fd1 =3D 0 > argv[1] =3D /dev/fd/0 > fd2 =3D 3 > buf =3D \ > Hello, world! That is odd ... (I am using the same version of Cygwin as you do, do I not?) 64-@@ uname -a CYGWIN_NT-6.1 Seven 2.12.0s(0.333/5/3) 2019-01-21 10:25 x86_64 Cygwin (however, I only replaced the cygwin1.dll) (the snapshot is apparently not the same as your version 2.12.0) > > > Not sure what you're testing. > > > > STC inherits a "read-only" open file descriptor from bash. On Linux > > the file can be opened read-write (via procfs), because a new entry > > is created in the open file table. > > > > (opening the file read-write (via fdescfs) on FreeBSD would fail) > > > > For this reason the output does not show what has been entered via > > the here-doc. > > > > In short, I was merely testing the semantics of Linux. > > Ah, ok. This is a bit of a problem on Windows. The code tries to > reopen the file by handle. Under some circumstances(*) we can't reopen > the file. In that case the code just tries to duplicate the handle. > However, a duplicated file handle can't have more permissions than the > original handle. > > So if it fails for you, it seems the reopen failed and the handle > only got duplicated. In that case, you can't gain write perms if > the original handle only got read perms. Understood. > What the code fails to do is trying to open the file by name as a last > resort. There was a (good?) reason I didn't implement that, but I don't > remember ATM. Not relevant in this case, as the file has been deleted ... (i.e., in this case, it cannot be opened by name). Henri ===== -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple