2012-04-12 9 views
1

私はPIDを引数として渡すプロセスを強制終了する必要があるクリーンアッププロセスを持っています。pidがわかっているときにCのプロセスをkillするには

私はそれを殺すのにkill(pid_t, SIGKILL)をよく使うことができます。しかし、私が得るPIDは整数値です。だから私はそれからpid_tを得ることはできません。プロセスを強制終了するために整数pidを使用する方法はありますか?

私は非常によく、私はC.

答えて

2

PIDはどのように最初に整数型になりましたか?あなたの関数がPIDを取る場合、それはpid_tとしてそれを取る必要があります。それがテキスト引数の場合は、ではなく、pid_tに解析する必要があります。

異常な状況がなければ、PIDを格納する整数のような変数はpid_tです。

+1

'pid_t'は符号付き整数型なので、' intmax_t'にpidを格納することは確かです。実際には、int型にも格納するのは良いことです。 'pid_t'が発明された唯一の理由は、醜いレガシーシステムではpidに' short'を使用し、新しいシステムでは 'int'を使用したいので、' pid_t'はプロトタイプで使用するために発明されたためですシステムは、 'pid_t'を' short'または 'int'(あるいはそうではないかもしれない、他のもの)と望むように定義することができます。 –

+0

私が知る限り、 'pid_t'は符号付き整数型であるという要件はありません。 (あなたには引用がありますか?) '(pid_t)-1'と'(pid_t)0'は正常に動作し、正当なPIDと重複しないことだけが必要です。これは確かに符号なし整数型(多くのシステムが 'time_t'で行うように)で行うことができ、浮動小数点型でもうまく動作します。 –

+2

"blksize_t、pid_t、およびssize_tは符号付き整数型です。"ソース:http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/sys_types.h.html –

1

pid_tが符号付き整数である参照します。 libcを参照してください。 kill

1

で整数値を最初の引数として使用します。pid_tはtypes.hで定義されたデータ型です。符号付き整数型のみです。

あなたの整数を直接pid_t変数に代入しようとしましたか? は機能していませんか?

関連する問題