delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2018/12/16/11:31:48

X-Recipient: archive-cygwin AT delorie DOT com
DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id
:list-unsubscribe:list-subscribe:list-archive:list-post
:list-help:sender:mime-version:content-type:date:from:to:subject
:message-id; q=dns; s=default; b=fE6lMqs2RaVBOur6hKS2vdAPyOPeaUn
+ZWs338bwMhmKPhrXjPIG13KDyVCgUbX96KeiPWqmcEEFJPUxMcEzndWXQMOO40u
hdWNQSNrU3aFdD4AItFgV/ATzBG9QDN6CIhlUFTiXussnNJSlyfqitWzKwlxsNDY
B8CWYct5T+Dc=
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id
:list-unsubscribe:list-subscribe:list-archive:list-post
:list-help:sender:mime-version:content-type:date:from:to:subject
:message-id; s=default; bh=YxqSaXrCtkAFaW1aV0ARVM2Z//4=; b=S9ZQW
0tuNKzbmhAW3va53EU8QwVqwzp8E/ivlGGyn7WXQksCRUVuSVqVgYn1xEEkMUsu2
qM8OIz8o9zsC9CFwRk21+kuULdlyDETaQCG9wYUciFpUid7N0eV6qokpQgpzcDmA
mDwJdgrFOegbeeW+868gX7SJS5zoJY0Vm+MQjg=
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Id: <cygwin.cygwin.com>
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com
Authentication-Results: sourceware.org; auth=none
X-Spam-SWARE-Status: No, score=-0.7 required=5.0 tests=BAYES_20,NORMAL_HTTP_TO_IP,RCVD_IN_DNSWL_LOW,SPF_PASS autolearn=ham version=3.3.2 spammy=D*@, steps, UD:cygwin.com, cygwincom
X-HELO: lb1-smtp-cloud8.xs4all.net
MIME-Version: 1.0
Date: Sun, 16 Dec 2018 17:31:32 +0100
From: Houder <houder AT xs4all DOT nl>
To: cygwin AT cygwin DOT com
Subject: /dev/fd/N not synonymous with file descriptor N; it is on Linux
Message-ID: <0f030e809f063f5a5e64ff7a7a0c3227@xs4all.nl>
X-Sender: houder AT xs4all DOT nl
User-Agent: XS4ALL Webmail
X-IsSubscribed: yes

--=_32a5c9107b957f67274152ccd79cd4a9
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset=US-ASCII;
 format=flowed

L.S.,

/dev/fd/N not synonymous with file descriptor N; it is on Linux

64-@@ cat /dev/fd/0 <<\EOF
> Hi
> EOF
cat: /dev/fd/0: No such file or directory

fails on Cygwin; not on Linux.

Also see:

     https://cygwin.com/ml/cygwin/2018-12/msg00028.html
     ( Bash heredoc on FD 3 )

Based on the output of strace on Linux, I composed an STC, that 
duplicates
the steps taken by bash (and cat).

This STC succeeds on Linux, but fails on Cygwin.

What does the STC do:

  - it creates a (temporary) file in the same way that bash does
  - the file is written to, the file descriptor is closed and the file 
unlinked
  - however, before the file is unlinked, it is opened a second time, 
like bash
    would do

Next
  - the file /dev/fd/N is opened, where N is the file descriptor that has 
been
    left open; this is what the "cat command" would do.

The "cat command" on Linux succeeds; it fails on Cygwin.

Regards,
Henri

STC attached (hopefully)

=====
--=_32a5c9107b957f67274152ccd79cd4a9
Content-Transfer-Encoding: base64
Content-Type: text/x-c;
 name=stc.c
Content-Disposition: attachment;
 filename=stc.c;
 size=3256

Ly8gZ2NjIC1XYWxsIC1vIHN0YyBzdGMuYwoKI2luY2x1ZGUgPHN0ZGlvLmg+
CiNpbmNsdWRlIDxzdGRsaWIuaD4KI2luY2x1ZGUgPHVuaXN0ZC5oPgojaW5j
bHVkZSA8c3RyaW5nLmg+IC8vIHN0cmVycm9yKCkKI2luY2x1ZGUgPGVycm5v
Lmg+CiNpbmNsdWRlIDxmY250bC5oPgoKLyoKIExQSSwgNS4xMSBUaGUgL2Rl
di9mZCBEaXJlY3RvcnkgKExpbnV4IFByb2dyYW1taW5nIEludGVyZmFjZSwg
TWljaGFlbCBLZXJyaXNrKQogIkZvciBlYWNoIHByb2Nlc3MsIHRoZSBrZXJu
ZWwgcHJvdmlkZXMgdGhlIHNwZWNpYWwgdmlydHVhbCBkaXJlY3RvcnkgL2Rl
di9mZC4KICBUaGlzIGRpcmVjdG9yeSBjb250YWlucyBmaWxlbmFtZXMgb2Yg
dGhlIGZvcm0gL2Rldi9mZC9uLCB3aGVyZSBuIGlzIGEgbnVtYmVyCiAgY29y
cmVzcG9uZGluZyB0byBvbmUgb2YgdGhlIG9wZW4gZmlsZSBkZXNjcmlwdG9y
cyBmb3IgdGhlIHByb2Nlc3MuIgogIi4uLiBPcGVuaW5nIG9uZSBvZiB0aGUg
ZmlsZXMgaW4gdGhlIC9kZXYvZmQgZGlyZWN0b3J5IGlzIGVxdWl2YWxlbnQg
dG8gZHVwbGljYXRpbmcKICB0aGUgY29ycmVzcG9uZGluZyBmaWxlIGRlc2Ny
aXB0b3IuIC4uLiIKICIuLi4gVGhlIGZpbGVzIGluIHRoZSAvZGV2L2ZkIGRp
cmVjdG9yeSBhcmUgcmFyZWx5IHVzZWQgd2l0aGluIHByb2dyYW1zLiBUaGVp
ciBtb3N0CiAgY29tbW9uIHVzZSBpcyBpbiB0aGUgc2hlbGwuIE1hbnkgdXNl
ci1sZXZlbCBjb21tYW5kcyB0YWtlIGZpbGVuYW1lIGFyZ3VtZW50cywgYW5k
CiAgc29tZXRpbWVzIHdlIHdvdWxkIGxpa2UgdG8gcHV0IHRoZW0gaW4gYSBw
aXBlbGluZSBhbmQgaGF2ZSBvbmUgb2YgdGhlIGFyZ3VtZW50cyBiZQogIHN0
YW5kYXJkIGlucHV0IG9yIG91dHB1dCBpbnN0ZWFkLiAuLi4iCiAqLwoKdm9p
ZAplcnJFeGl0KGNvbnN0IGNoYXIgKnN0cikKewogICAgcHJpbnRmKCJpZCA9
ICVzLCBlcnJubyA9ICVkLCBlcnJzdHIgPSAlc1xuIiwgc3RyLCBlcnJubywg
c3RyZXJyb3IoZXJybm8pKTsKICAgIGZmbHVzaChzdGRvdXQpOwogICAgZXhp
dChFWElUX0ZBSUxVUkUpOwp9CgppbnQKbWFpbigpCnsKICAgIGludCBmZDEs
IGZkMiwgZmQzOwoKICAgIGVycm5vID0gMDsKICAgIC8vIGNyZWF0ZSBhIHRt
cGZpbGUgaW4gdGhlIHNhbWUgd2F5IHRoYXQgYmFzaCB3b3VsZCBkbyAuLi4K
ICAgIGZkMSA9IG9wZW4oIi90bXAvc3RjLnR4dCIsIE9fV1JPTkxZfE9fQ1JF
QVR8T19FWENMfE9fVFJVTkMsIDA2MDApOwogICAgaWYgKGZkMSA9PSAtMSkK
ICAgICAgICBlcnJFeGl0KCJvcGVuZmQxIik7CgogICAgZXJybm8gPSAwOwog
ICAgaWYgKHdyaXRlKGZkMSwgIkhlbGxvLCB3b3JsZCFcbiIsIDE0KSA9PSAt
MSkgZXJyRXhpdCgid3JpdGVmZDEiKTsKCiAgICBlcnJubyA9IDA7CiAgICAv
LyBhbHNvIG9wZW4gdGhpcyB0bXBmaWxlIGZvciByZWFkaW5nIGxpa2UgYmFz
aCB3b3VsZCBkbyAuLi4KICAgIGZkMiA9IG9wZW4oIi90bXAvc3RjLnR4dCIs
IE9fUkRPTkxZKTsKICAgIGlmIChmZDIgPT0gLTEpCiAgICAgICAgZXJyRXhp
dCgib3BlbmZkMiIpOwoKICAgIGVycm5vID0gMDsKICAgIC8vIGNsb3NlIGZk
IDEgbGlrZSBiYXNoIHdvdWxkIGRvIC4uLgogICAgaWYgKGNsb3NlKGZkMSkg
PT0gLTEpIGVyckV4aXQoImNsb3NlZmQxIik7CgogICAgZXJybm8gPSAwOwog
ICAgLy8gZGVsZXRlIHRoZSB0bXBmaWxlIGxpa2UgYmFzaCB3b3VsZCBkbyAu
Li4KICAgIGlmICh1bmxpbmsoIi90bXAvc3RjLnR4dCIpID09IC0xKSBlcnJF
eGl0KCJ1bmxpbmsiKTsKCiAgICAvLyBrbHVkZ2U6IGNvbXBvc2UgYSBzdHJp
bmcgKHVzaW5nIGZkMikgcmVwcmVzZW50aW5nICJ0aGUgZGV2aWNlIGZpbGUi
CiAgICAvLyBpbiAvZGV2L2ZkIChhIHN5bWxuayB0byAvcHJvYy9zZWxmL2Zk
KSBmb3IgdGhlIGZpbGUgZGVzY3JpcHRvciBmZCAyCiAgICAvLyB0aGF0IGlz
IHN0aWxsIG9wZW4gLi4uCiAgICBjaGFyIGRldmZpbGVbMTJdID0gIi9kZXYv
ZmQvIjsgZGV2ZmlsZVs4XSA9IGZkMiArIDB4MzA7IGRldmZpbGVbOV0gPSAn
XDAnOwoKICAgIHByaW50ZigiZGV2ZmlsZSA9ICVzXG4iLCBkZXZmaWxlKTsK
CiAgICBlcnJubyA9IDA7CiAgICAvLyBvcGVuIHRoaXMgZGV2aWNlIGZpbGU7
IGl0IHN1Y2NlZWRzIG9uIExpbnV4LCBidXQgZmFpbHMgb24gQ3lnd2luIC4u
LgogICAgZmQzID0gb3BlbihkZXZmaWxlLCBPX1JET05MWSk7CgogICAgY29u
c3QgY2hhciAqaWQgPSAib3BlbmZkMyI7CiAgICBpZiAoZmQzID09IC0xKSB7
CiNpZiAwCiAgICAgICAgZXJyRXhpdChpZCk7CiNlbHNlCglwcmludGYoIiVz
OiBDYW5ub3Qgb3BlbiEsIGlkID0gJXMsIGVycm5vID0gJWQsIGVycm1zZyA9
ICVzXG4iLCBkZXZmaWxlLAogICAgICAgICAgICBpZCwgZXJybm8sIHN0cmVy
cm9yKGVycm5vKSk7CiAgICAgICAgY2hhciBidWZbMTZdID0geyAwIH07CiAg
ICAgICAgLy8gaG93ZXZlciB0aGUgZmlsZSB0byB3aGljaCB0aGUgc3ltbG5r
IHJlZmVycywgaXMgc3RpbGwgcHJlc2VudCAuLi4KICAgICAgICAvLyBROiBk
b2VzIEN5Z3dpbiBhdHRlbXB0IHRvIHJlYWQgdGhlIC90bXAgZGlyZWN0b3J5
PyAoYW4gYXR0ZW1wdCB0aGF0CiAgICAgICAgLy8gICAgd2lsbCBmYWlsLCBi
ZWNhdXNlIHRoZSBmaWxlIGhhcyBiZWVuIHVubGlua2VkKQogICAgICAgIC8v
IGl0IGFwcGVhcnMgdGhhdCBhIHJlYWRsaW5rIG9mIGEgZmlsZSBpbiAvZGV2
L2ZkIG11c3QgYmUgZGl2ZXJ0ZWQgdG8KICAgICAgICAvLyB0aGUgb3BlbiBm
aWxlIGRlc2NyaXB0b3Igb2YgdGhlIHByb2Nlc3MgLi4uCiAgICAgICAgZXJy
bm8gPSAwOwogICAgICAgIGlmIChyZWFkKGZkMiwgYnVmLCBzaXplb2YoYnVm
KSApID09IC0xKSBlcnJFeGl0KCJyZWFkZmQyIik7CiAgICAgICAgcHJpbnRm
KCJidWYgPSAlcyIsIGJ1Zik7CiAgICAgICAgaWYgKGNsb3NlKGZkMikgPT0g
LTEpIHByaW50ZigiY2xvc2VmZDIgZmFpbGVkXG4iKTsKICAgICAgICBleGl0
KEVYSVRfRkFJTFVSRSk7CiNlbmRpZgogICAgfQoKICAgIGNoYXIgYnVmWzE2
XSA9IHsgMCB9OwogICAgZXJybm8gPSAwOwogICAgaWYgKHJlYWQoZmQzLCBi
dWYsIHNpemVvZihidWYpICkgPT0gLTEpIGVyckV4aXQoInJlYWRmZDMiKTsK
ICAgIHByaW50ZigiYnVmID0gJXMiLCBidWYpOwoKICAgIGlmIChjbG9zZShm
ZDMpID09IC0xKSBwcmludGYoImNsb3NlZmQzIGZhaWxlZFxuIik7CiAgICBp
ZiAoY2xvc2UoZmQyKSA9PSAtMSkgcHJpbnRmKCJjbG9zZWZkMiBmYWlsZWRc
biIpOwp9CgovLz09PT09Cg==


--=_32a5c9107b957f67274152ccd79cd4a9
Content-Type: text/plain; charset=us-ascii


--
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
--=_32a5c9107b957f67274152ccd79cd4a9--

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019