• ベストアンサー

プロセスIDの取得方法 

a-kumaの回答

  • ベストアンサー
  • a-kuma
  • ベストアンサー率50% (1122/2211)
回答No.6

プロセスを殺す処理は kill() を使いましょう、と toysmith さんが 書いてましたね。   kill(pid_c, SIGTERM); です。 補足で「sig_handler とは?」とありますが、それはシグナルを処理する 為に書いた関数の名前です(関数名は何でもいい)。 一度、シグナルの処理をしてしまうと、初期状態に戻されてしまうので、 sig_handler() の中でも、signal() を使って、再登録しています。

noname#794
質問者

お礼

ありがとうございました! なんとか、子プロセスを終了することができました。 でも、まだまだわからない部分がいっぱいです。 もっと勉強しなくては。(^^ゞ とにもかくにも、a-kumaさん、toysmithさんありがとうございました。

関連するQ&A

  • ウインドウのプロセス終了について

    今C++でタスクバーのウインドの列挙を行い、またプロセスIDの取得を できたのですがこれらを終了させる方法がわかりません。 いろいろ調べてみたのですが、UNIXでのkillコマンドに匹敵する 関数がわかりません。 自分が調べたところ使えそうなのは。 CloseMainWindow関数 TerminateProcess関数 などができそうなのではと考えています。 また http://akky.cjb.net/mfc/appclose.html ここに書いてあるソースを打ってみたのですが、 思うように動きませんでした。 どうしたらよいでしょうか。 具体的な方法(プログラム)がほしいです。 よろしくお願いします。

  • プロセスIDの取得方法について

    下に同様の質問をしたのですが、削除方法分からない為、再度質問させていただきまし。 VB5.0を利用しています。 VBで書いたexeを実行した際に、そのプロセスID(自分の)は、GetCurrentProcessIdを利用すれば取得できると分かりました。 が、プログラム内でExcelを下記の様にオブジェクトを作成した場合、そのプロセスIDをどうやって取得すればいいのでしょうか? ご存知の方居ましたら、教えて下さい。 Set ExcelObj = CreateObject("Excel.Application") ここで起動?されたExcelのプロセスIDを取得したいのですが。

  • プロセスIDの取得の方法。

    使用言語:C OS:NT4.0WS プロセスビューアで表示されるような、プロセスIDやプロセス名を 取得する方法を探しています。 Cの標準関数で無ければAPI関数での方法でもどちらでも構わないので よろしくお願いします。

  • プロセスIDの再利用

    こんちにちは、honiyonです。  親子関係のない全く別々に起動されたプロセスの終了するプログラムを作ろうと思います。  .NETではシステムで一意なIDというものがある、という情報を見かけたのですが、.NETは使用したくないのでプロセスIDを使って監視出来ないかと考えています。  プロセスIDを使って、定期的にポーリングする方法をとったとき、 プロセスIDが再利用されてしまう事で終了を検知出来ない事があるのではという疑問が出てきました。  UNIXでは極力重複しない(再利用しない)という方針があるようですが、Windowsではそのような仕組みはありますでしょうか?  そのような仕組みがあれば、再利用による検知ミスは無視出来るレベルの問題かなと考えています。    また、プロセスIDでの監視以外で良い手段がありましたら、是非ご教授頂ければ幸いです。  宜しくお願いします(..  

  • javaのプロセスについて

    UnixやLinuxなどで、javaのプロセスを常駐させたいのですが、何か方法はありますでしょうか。 javaという名前であれば何でもいいので、テスト的に起動したいです。 (プロセスをkillするテストをするために、使用します)

  • 起動しているアプリケーションのプロセスIDを取得したい.

    現在,起動しているアプリケーションのプロセスIDを取得したいと考えています. プロセスIDを取得するコマンドはあるのでしょうか? 環境:Windows2000+SP3

  • プロセスIDからウィンドウハンドルを取得する方法

    以下の方法を調べていますが、プロセスIDからウィンドウハンドルを取得する方法がわかりませんでした。 (1)自分がCreateProcessで生成したプロセスのウィンドウハンドル (2)自分とは関係ないプロセスで、プロセスIDだけ判明しているプロセスのウィンドウハンドル ご存知の方、ご教授願います。 <環境> WindowsXP VC++6.0

  • c言語でプロセスIDを調べたい

    unixのコマンドで ps aux と打つと "ユーザー名" "プロセスID"  。 。 。 。 がでますけど、この2番目の"プロセスID"を調べる関数ってありますか? ※というのも、プロセスID(ジョブ番号)を引数にして、そのプロセスが終了したら何か処理をさせるというプログラムを作りたいからです。よろしくお願いします。

  • 既存プロセスからプロセスのプライマリースレッドIDの取得方法

    いつもお世話になってます。 プロセスに関することで分からないことがあるため、どなたか御教授して下さい。 只今、VC++で開発を行っているのですが、CreateProcess関数を使用して開始したプロセスの情報が、引数で指定したPROCESS_INFORMATIONにプライマリースレッドのハンドルやIDが設定されるのは知っているのですが、現在動作中のプロセスからそのプロセスのプライマリースレッドのIDを取得することは可能でしょうか? 具体的には、動作中のプロセスIDを指定するとそのプロセスのプライマリースレッドに対してPostThreadMessageで任意のメッセージが送れるという仕様です。 対象のプロセスがウィンドウを持っていれば、EnumWindows関数を使用してウィンドウに対してPostMessageができるというのは分かったのですが、今回対象のプロセスがウィンドウを持たない為、上記のようにスレッドに対してメッセージを送るようになっています。 CreateProcess呼び出し時にはスレッドIDが取得できることから、プロセスID、または、プロセスハンドルからスレッドIDが取得できるのではないかなと考えられるんですが。。。。

  • 子プロセス、

    親プロセスから子プロセスを生成するとは具体的に何を意味しているのでしょうか? またresume文とはなんでしょうか? 何をしてくれているのでしょうか? なぜUNIXは安定していると言われるのでしょうか? 聞いたけど忘れてしまいました、 お願いします。