私はPIDを引数として渡すプロセスを強制終了する必要があるクリーンアッププロセスを持っています。pidがわかっているときにCのプロセスをkillするには
私はそれを殺すのにkill(pid_t, SIGKILL)
をよく使うことができます。しかし、私が得るPIDは整数値です。だから私はそれからpid_tを得ることはできません。プロセスを強制終了するために整数pidを使用する方法はありますか?
私は非常によく、私はC.
私はPIDを引数として渡すプロセスを強制終了する必要があるクリーンアッププロセスを持っています。pidがわかっているときにCのプロセスをkillするには
私はそれを殺すのにkill(pid_t, SIGKILL)
をよく使うことができます。しかし、私が得るPIDは整数値です。だから私はそれからpid_tを得ることはできません。プロセスを強制終了するために整数pidを使用する方法はありますか?
私は非常によく、私はC.
PIDはどのように最初に整数型になりましたか?あなたの関数がPIDを取る場合、それはpid_t
としてそれを取る必要があります。それがテキスト引数の場合は、ではなく、pid_t
に解析する必要があります。
異常な状況がなければ、PIDを格納する整数のような変数はpid_t
です。
pid_t
から解決策を探して、実際の整数でいsystem("kill -9 <pid>");
使用することができます!
pid_t
が符号付き整数である参照します。 libcを参照してください。 kill
で整数値を最初の引数として使用します。pid_tはtypes.hで定義されたデータ型です。符号付き整数型のみです。
あなたの整数を直接pid_t変数に代入しようとしましたか? は機能していませんか?
'pid_t'は符号付き整数型なので、' intmax_t'にpidを格納することは確かです。実際には、int型にも格納するのは良いことです。 'pid_t'が発明された唯一の理由は、醜いレガシーシステムではpidに' short'を使用し、新しいシステムでは 'int'を使用したいので、' pid_t'はプロトタイプで使用するために発明されたためですシステムは、 'pid_t'を' short'または 'int'(あるいはそうではないかもしれない、他のもの)と望むように定義することができます。 –
私が知る限り、 'pid_t'は符号付き整数型であるという要件はありません。 (あなたには引用がありますか?) '(pid_t)-1'と'(pid_t)0'は正常に動作し、正当なPIDと重複しないことだけが必要です。これは確かに符号なし整数型(多くのシステムが 'time_t'で行うように)で行うことができ、浮動小数点型でもうまく動作します。 –
"blksize_t、pid_t、およびssize_tは符号付き整数型です。"ソース:http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/sys_types.h.html –