Deprecated: Array and string offset access syntax with curly braces is deprecated in /mnt/hep_web/hep_web/member/n-kota/dokuwiki/inc/init.php on line 542
ja:cpp:shellcommand [GiriWiki]

ユーザ用ツール

サイト用ツール


ja:cpp:shellcommand

差分

この文書の現在のバージョンと選択したバージョンの差分を表示します。

この比較画面にリンクする

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
ja:cpp:shellcommand [2017/06/02 03:32]
kota
ja:cpp:shellcommand [2018/04/12 06:57] (現在)
kota
ライン 4: ライン 4:
 ナイーブには ナイーブには
   * system 関数 <​cstdlib>​   * system 関数 <​cstdlib>​
-  * popen 関数 <csdio>+  * popen 関数 <cstdio>
 を使う2通りがある。\\ を使う2通りがある。\\
 ただコマンドを実行したいだけであればsystem関数を使えば良いが、system関数の返り値はshellの終了ステータスであり、 ただコマンドを実行したいだけであればsystem関数を使えば良いが、system関数の返り値はshellの終了ステータスであり、
ライン 22: ライン 22:
  
  ​while( fgets(buffer,​sizeof(buffer),​pipe)!=NULL ){  ​while( fgets(buffer,​sizeof(buffer),​pipe)!=NULL ){
-    strtok(buffer,"​\n\0"​);//​ bufferには改行コードが含まれてしまっているのでそれをNULLに置換 <​string>​+    strtok(buffer,"​\n\0"​);//​ bufferには改行コードが含まれてしまっているのでそれをNULLに置換 ​(#​include ​<cstring>​)
      ​.... ​                      ​.... ​                
-     ​.... ​                // コマンドの標準出力を1行ずつ読んで処理を実行+     ​.... ​                // コマンドの標準出力を1行ずつ読んで(bufferに格納)好きな処理を実行
      ​.... ​                      ​.... ​                
   }   }
ライン 30: ライン 30:
 </​code>​ </​code>​
  
 +注意点として、[[http://​panda.holy.jp/​2014/​07/​312/​|pcloseでストリームを閉じた後にプロセスの終了待ちをしている]]ため、 
 +popenで呼び出したプロセスが終了しないままpcloseしてしまうと、そのプロセスが失敗してしまうらしい。
ja/cpp/shellcommand.1496374335.txt.gz · 最終更新: 2017/06/02 03:32 by kota