- - PR -
system("")の使い方
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2003-08-11 10:32
今、LinuxでC言語の勉強してるんですが、CでLinuxのコマンドを実行するsystem()についての質問です。
このコマンド(別のコマンドでも構いませんが)で、例えばC言語のprintfみたいに%dや%sのようなフォーマットの指定は出来るんですか? 伝わってますか、僕の言いたいこと? | ||||||||
|
投稿日時: 2003-08-11 11:05
作成したプログラムから、何らかのコマンドを実行し、 出力結果を取り込みたいということでしょう。 ちなみに、その出力は当然、呼ばれる側のコマンドに 依存します。出力結果から自分の欲しい情報をのみを 得るには、その出力結果の文字列を編集しないといけ ません。 また、発行したコマンドの成否を見極めるには、$s tatusをechoさせて確認するなどの方法もあります。 詳しくは、systemやpopenのmanを確認されてはいかが でしょうか? では。 | ||||||||
|
投稿日時: 2003-08-11 11:15
永井です。
関数に渡す文字列を任意フォーマットで加工して渡したいということでしょうか。 それでしたら、sprintfを用いればお望みの動作を得られると思います。
残念ながら、あまり主張が明快でないように感じられます。 併せて、具体例等挙げられると良いのではないかと。 | ||||||||
|
投稿日時: 2003-08-11 11:51
ありがとうございます。
ちょうど本の中でsystemを使ってコマンドを出力している例が出てきたので、疑問に思って書き込ませていただきました。 system("ps -ax"); という例だったのですが、そこで例えばファイルの出力をする場合、 system("コマンド > %s.txt", 変数); なんて事は出来たりしないのかなぁ、という素朴な疑問でした(あまりいい例ではありませんが)。 manを読んだりしたんですが、いまいちよく解らず、質問をした次第であります。 折角Linuxなのでそういう使い方も覚えておきたかったので・・・ | ||||||||
|
投稿日時: 2003-08-11 15:24
char buffer[十分な長さ]; sprintf(buffer, "コマンド > %s.txt", 変数); system(buffer); とかで実現出来ないでしょうか……と言ったつもりだったのですが、 うまく伝わっていなかったでしょうか。 #今、Cの環境がない上に、Cから遠ざかって久しいのであやふやですが。
折角ですので、シェルに関しても勉強されてみるといいかも知れません。 #私なら、このようなケースではシェルの方を検討すると思います | ||||||||
|
投稿日時: 2003-08-11 17:05
永井さん、再度の書き込みありがとうございます。
やはりC上で実現するには、一度回り道をしなければならないみたいですね。 シェルに関しては、初歩的な部分であれば困らない程度に解っているつもりなので、次のステップとしてCあたりに言ってみようという話で感じた疑問でした。 精進します。 |
1