質問編集履歴
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
         | 
