質問編集履歴

3

「試したこと」を追記

2020/03/15 19:28

投稿

ta1g3n
ta1g3n

スコア35

test CHANGED
File without changes
test CHANGED
@@ -194,11 +194,13 @@
194
194
 
195
195
  + }
196
196
 
197
+ + println!("reading..."); // readが処理をブロックしているか確認
198
+
197
199
  + }
198
200
 
199
201
  ```
200
202
 
201
- この場合も同様に処理がブロックされました。
203
+ この場合も同様に処理がブロックされました。("reading..."という出力が一つも確認できませんでした。)
202
204
 
203
205
 
204
206
 

2

「試したこと」を編集

2020/03/15 19:28

投稿

ta1g3n
ta1g3n

スコア35

test CHANGED
File without changes
test CHANGED
@@ -174,7 +174,7 @@
174
174
 
175
175
  - out.read_to_string(&mut res).unwrap();
176
176
 
177
- + let mut buf = [0; 1024];
177
+ + let mut buf = [0; 4];
178
178
 
179
179
  + while let Ok(s) = out.read(&mut buf) {
180
180
 
@@ -182,7 +182,7 @@
182
182
 
183
183
  + 0 => break,
184
184
 
185
- + 1024 => res.append(&mut buf.to_vec()),
185
+ + 4 => res.append(&mut buf.to_vec()),
186
186
 
187
187
  + _ => {
188
188
 

1

「試したこと」を追記

2020/03/15 19:22

投稿

ta1g3n
ta1g3n

スコア35

test CHANGED
File without changes
test CHANGED
@@ -166,6 +166,42 @@
166
166
 
167
167
 
168
168
 
169
+ ### 試したこと
170
+
171
+ hoshi-takanoriさんのご指摘を受け、読み取り部を以下のように変更しました。
172
+
173
+ ```Diff
174
+
175
+ - out.read_to_string(&mut res).unwrap();
176
+
177
+ + let mut buf = [0; 1024];
178
+
179
+ + while let Ok(s) = out.read(&mut buf) {
180
+
181
+ + match s {
182
+
183
+ + 0 => break,
184
+
185
+ + 1024 => res.append(&mut buf.to_vec()),
186
+
187
+ + _ => {
188
+
189
+ + res.append(&mut buf.to_vec());
190
+
191
+ + break;
192
+
193
+ + }
194
+
195
+ + }
196
+
197
+ + }
198
+
199
+ ```
200
+
201
+ この場合も同様に処理がブロックされました。
202
+
203
+
204
+
169
205
  ### 補足情報
170
206
 
171
207
  OS: Arch Linux (カーネルバージョン5.5.8)