• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:gccプログラムで複数の実行ファイルを起動可能?)

gccプログラムで複数の実行ファイルを起動可能?

このQ&Aのポイント
  • Ubuntu LinuxでTCPクライアント通信を行うプログラムをgccで作成しています。
  • キー操作のログテキストファイルをの内容に応じてTCP通信側のプログラムが送信するパケットの内容を変えたいと思っています。
  • 片方の実行ファイルを起動した場合に、もう一つの実行ファイルも起動するようにする方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • Wr5
  • ベストアンサー率53% (2173/4061)
回答No.1

>この場合片方の実行ファイルを起動した場合に、もう一つの実行ファイルも起動するようにするにはどうしたら 両方のプログラムを起動するシェルスクリプトを作成する。 ってところでしょうかね。 まぁ、それぞれのプログラムを起動させるプログラムを作る。 という方法もあるでしょうが。 なお、バックグラウンドで動作させるようにしないと、起動したプログラムが終了するまで次のプログラムが起動しない。 なんてコトになるのでご注意を。 ユーザーからの操作が必要っぽいので、「TCPクライアント通信を行うプログラム」とやらをバックグラウンドで起動、続けて「キー操作のログテキストファイルを出力プログラム」をフォアグラウンドで実行となるでしょうね。 # バックグラウンドで動作しているプログラムをどうやって終了させるか。 # というのもあらかじめ調べておきましょう。 あとは…… >ログテキストファイルをの内容に応じてTCP通信側のプログラムが送信するパケットの内容を変えたいと思っている ファイルのオープン時の共有や排他制御とかには注意ですかねぇ。 片方が書き込んで、もう片方がちゃんと読めるか?とか…。

techhouse
質問者

お礼

回答頂きありがとうございます。その後、いろいろと複数タスクを動作させていくようなやり方をいろいろと調べてみたところ、実行ファイルを複数動作させるというやり方というのとスレッドというやり方forkというやりかたなどなどがあることがわかってきました。現在自分はソースコードなどを自由に編集したり作ったりすることができるのでスレッドでのプログラミングがやってみたいと感じてきました。複数実行ファイル起動というのもシェルスクリプトっていうバッチみたいな物を活用することでできるのですね。ただ、ファイルの排他制御というのはかなり課題になるのですね。 詳細頂きありがとうございました。シェルスクリプトでの複数実行は今後やってみたいです。

その他の回答 (1)

回答No.2

No1が言うとおり、、2個起動した時、 最初に起動したほうをどうやって終わるか?は ありますね。 ps axでプロセス探してkill するとか? アプリの起動自体は ./recv & < &で強制起動 ./send こっちは&つけずそのまま、クライアントからの入力待ち。。 が、ごっちゃごっちゃ(w) 他のPCから、アクセスしているのであれば、 コンソールを2個まともに開いちゃえば、画面に直接だせてテストしやすいかもですが。 受け側がprintf 出来るので、かなりデバッグが楽です。 ですが、1つのコンソールでやってるんですよね? <過去に似た事やった事があったんですが、忘れました。

techhouse
質問者

お礼

回答頂きありがとうございます。その後、いろいろと複数タスクを動作させていくようなやり方をいろいろと調べてみたところ、実行ファイルを複数動作させるというやり方というのとスレッドというやり方forkというやりかたなどなどがあることがわかってきました。現在自分はソースコードなどを自由に編集したり作ったりすることができるのでスレッドでのプログラミングがやってみたいと感じてきました。複数実行ファイル起動というのもシェルスクリプトっていうバッチみたいな物を活用することでできるのですね。ただ、ファイルの排他制御というのはかなり課題になるのですね。 詳細頂きありがとうございました。シェルスクリプトでの複数実行は今後やってみたいです。

関連するQ&A