Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
システムコマンドを実行するCプログラムをAndroid/Linuxで作成しています。コマンドはいくつかのテキストをstdoutに出力し、出力を文字列または文字配列にキャプチャしようとしています。
例えば:
system("ls");
現在のディレクトリの内容をstdoutに一覧表示し、そのデータをプログラムでCの変数にキャプチャできるようにしたいと思います。
どうすればよいですか?
ありがとう。
を使用しますpopen。のようなストリームを返しますfopen。ただし、ストリームを で閉じる必要がありますpclose。これはpclose、子プロセスの起動に関連するリソースのクリーンアップを が処理するためです。
popen
fopen
pclose
FILE *ls = popen("ls", "r"); char buf[256]; while (fgets(buf, sizeof(buf), ls) != 0) { /*...*/ } pclose(ls);