回答編集履歴

1

見解の訂正

2020/10/24 10:09

投稿

angel_p_57
angel_p_57

スコア1672

test CHANGED
@@ -1,6 +1,6 @@
1
- 正しいか正しくないかで言えば、「正しくない」だと思います。
1
+ 正しいか正しくないかで言えば、「正しくない」だと思います。→ 訂正します
2
2
 
3
-
3
+ -- 最初の見解
4
4
 
5
5
  なぜかというと、`<(:)` で作られるのは、無名のパイプの読み込み側の口で、それを `<>` で読み書き両用に使おうとしているからです。
6
6
 
@@ -13,3 +13,21 @@
13
13
 
14
14
 
15
15
  ただ、このアイデア自体は個人的には好きですね。考え付きませんでした。
16
+
17
+
18
+
19
+ --
20
+
21
+ 以下訂正: Linuxならありな気がしてきました。
22
+
23
+
24
+
25
+ * `<> <(:)` をする場合は、「無名パイプの読み込み側FDを読み書き両用でFDコピー」ではなく、「無名パイプ実体へのシンボリックリンク ( `/dev/fd/数値` ) を読み書き両用で別途オープン」なので「読み込み側だから」という理由は不当
26
+
27
+ * 明確にドキュメント化されてるかは分からないが、Linuxでは無名パイプはpipefsという内部的なファイルシステム上のfifoとして扱われるので、名前付きパイプと(ファイル名が明確に見える以外の)違いはない
28
+
29
+ * 名前付きパイプ(fifo)を読み書き両用でオープンするのは、POSIX的には保証されていないが、Linuxでは動作する。( https://linuxjm.osdn.jp/html/LDP_man-pages/man7/fifo.7.html 参照 )
30
+
31
+
32
+
33
+ ということで、Linuxならテンポラリな名前付きパイプと同等、で良いと思います。