challenge 指定コマンドを別プロセスで起動

与えられた文字列のコマンドを、別プロセスで実行してください。 異なるPIDのプロセスが立ち上がり、指定したコマンドを実行することが条件です。

あわせて、実行結果のリターンコードと、別プロセスが出力した標準出力を受け取る方法も記載してください。

今回投稿する上で、別プロセスとして実行するコマンドの与え方は自由ですが、実行した結果、何らかの損害を与えるようなコマンドは埋め込まないようにお願いします。

Posted feedbacks - OCaml

コマンドを実行するだけならSys.commandで。戻り値も得られます。
出力を利用する場合はopen_processがin,out,fullなどと色々用意されています。
終了値はclose_processの時に返ります。

  あと標準入力を開いたとき、read_lineのような一行入力モノは
'\n'を書き込んでflushするまで終わりません。
output_stringは文字列中に\nがないと改行されないので、少し注意が必要です。
1
2
3
4
5
6
7
#load "unix.cma";;
let stdout_iter f cmd =
  let proc = Unix.open_process_in cmd in
  (try while true do f (input_line proc) done with _ -> ());
  Unix.close_process_in proc;;

stdout_iter (Printf.printf "  > %s\n") "ps";;

Index

Feed

Other

Link

Pathtraq

loading...