delorie.com/archives/browse.cgi | search |
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--
webmaster | delorie software privacy |
Copyright © 2019 by DJ Delorie | Updated Jul 2019 |