質問編集履歴
3
「試したこと」を追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -96,9 +96,10 @@
|
|
96
96
|
+ break;
|
97
97
|
+ }
|
98
98
|
+ }
|
99
|
+
+ println!("reading..."); // readが処理をブロックしているか確認
|
99
100
|
+ }
|
100
101
|
```
|
101
|
-
この場合も同様に処理がブロックされました。
|
102
|
+
この場合も同様に処理がブロックされました。("reading..."という出力が一つも確認できませんでした。)
|
102
103
|
|
103
104
|
### 補足情報
|
104
105
|
OS: Arch Linux (カーネルバージョン5.5.8)
|
2
「試したこと」を編集
title
CHANGED
File without changes
|
body
CHANGED
@@ -86,11 +86,11 @@
|
|
86
86
|
hoshi-takanoriさんのご指摘を受け、読み取り部を以下のように変更しました。
|
87
87
|
```Diff
|
88
88
|
- out.read_to_string(&mut res).unwrap();
|
89
|
-
+ let mut buf = [0;
|
89
|
+
+ let mut buf = [0; 4];
|
90
90
|
+ while let Ok(s) = out.read(&mut buf) {
|
91
91
|
+ match s {
|
92
92
|
+ 0 => break,
|
93
|
-
+
|
93
|
+
+ 4 => res.append(&mut buf.to_vec()),
|
94
94
|
+ _ => {
|
95
95
|
+ res.append(&mut buf.to_vec());
|
96
96
|
+ break;
|
1
「試したこと」を追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -82,6 +82,24 @@
|
|
82
82
|
cmd.stdinへの入力に対する出力を受け取るにはどうすればいいのでしょうか?
|
83
83
|
プロセス間通信の心得がある方、ご教授いただけると幸いです。
|
84
84
|
|
85
|
+
### 試したこと
|
86
|
+
hoshi-takanoriさんのご指摘を受け、読み取り部を以下のように変更しました。
|
87
|
+
```Diff
|
88
|
+
- out.read_to_string(&mut res).unwrap();
|
89
|
+
+ let mut buf = [0; 1024];
|
90
|
+
+ while let Ok(s) = out.read(&mut buf) {
|
91
|
+
+ match s {
|
92
|
+
+ 0 => break,
|
93
|
+
+ 1024 => res.append(&mut buf.to_vec()),
|
94
|
+
+ _ => {
|
95
|
+
+ res.append(&mut buf.to_vec());
|
96
|
+
+ break;
|
97
|
+
+ }
|
98
|
+
+ }
|
99
|
+
+ }
|
100
|
+
```
|
101
|
+
この場合も同様に処理がブロックされました。
|
102
|
+
|
85
103
|
### 補足情報
|
86
104
|
OS: Arch Linux (カーネルバージョン5.5.8)
|
87
105
|
Rustバージョン: 1.43.0-nightly
|