外部プログラム等の実行

外部コマンドやプログラム等を呼び出したいときは system() を用いるのが便利である。

#include <iostream>
using namespace std;
 
int main()
{
	system("ls");
}

一方で、外部コマンドやプログラム等を実行させて、さらにその結果を処理したい場合は以下のように popen() を利用する。以下のソースコードは、ファイル some.fa の中において行の先頭に > を持つ行を抜き出してそれを標準出力に表示させるプログラムを生成する。

#include <string>
#include <iostream>
using namespace std;
 
int main()
{
	string fileName="some.fa"; // 処理したいファイル名
	
	string command; // 実行したい外部プログラム等のコマンド
	command=command.erase()+"egrep \"^>\" "+fileName;
	
	FILE* result;
	char buf[1024];
	result=popen(command.c_str(),"r");
	while(fgets(buf,sizeof(buf),result)!=NULL)
	{
		cout<<buf; // 結果の処理
	}
	pclose(result);
}
このエントリーをはてなブックマークに追加

Site search

ページのトップへ戻る