我有一個清理的過程,需要殺死其PID作爲參數傳遞給它傳遞的過程中殺死在C進程。如何當PID知道
我可以很好的使用kill(pid_t, SIGKILL)
殺死它。但是我得到的PID是一個整數值。所以我不能得到一個pid_t。有沒有辦法使用和整數PID來殺死進程?
好吧。我可以很好地使用system("kill -9 <pid>");
我要尋找從C.
我有一個清理的過程,需要殺死其PID作爲參數傳遞給它傳遞的過程中殺死在C進程。如何當PID知道
我可以很好的使用kill(pid_t, SIGKILL)
殺死它。但是我得到的PID是一個整數值。所以我不能得到一個pid_t。有沒有辦法使用和整數PID來殺死進程?
好吧。我可以很好地使用system("kill -9 <pid>");
我要尋找從C.
PID如何首先進入整數類型?如果你的函數需要一個PID,它應該把它作爲pid_t
。如果是文本參數,則應將其解析爲pid_t
,而不是int
。
除非你有一些不尋常的情況,只有類似於整數變量,你應該永遠儲存在PID是pid_t
。
pid_t
的解決方案實際上是一個整數!
的pid_t
是一個符號整數。見libc。只是在kill
將爲pid_t使用整數值作爲第一個參數是在types.h中定義的數據類型只有一個帶符號的整數類型。
沒有ü嘗試直接分配給您的整數將爲pid_t變量? 它不工作?
'pid_t'是有符號整數類型,因此它肯定是有效存儲的PID在'intmax_t'。實際上,它們也可以用普通的'int'存儲。很可能唯一的原因是'pid_t'甚至被髮明是因爲一些醜陋的遺留系統對pid使用'short',而較新的系統想要使用'int',因此'pid_t'被髮明用於原型,以便每個系統可以根據需要將'pid_t'定義爲'short'或'int'(或者不太可能,別的東西)。 – 2012-04-12 06:36:40
據我所知,沒有要求'pid_t'是一個有符號的整數類型。 (你有引用嗎?)只需要'(pid_t)-1'和'(pid_t)0'工作並且不合法的PID重疊。這當然可以用無符號整數類型來完成(就像許多系統用'time_t'所做的那樣),它當然也適用於浮點類型。 – 2012-04-12 07:26:47
「blksize_t,pid_t和ssize_t應爲有符號整數類型。」資料來源:http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/sys_types.h.html – 2012-04-12 10:12:11