當前位置:首頁 » 編程語言 » c語言kill

c語言kill

發布時間: 2025-08-28 17:57:24

1. 怎麼用c語言結束某進程

首先你要知道該進程的PID


如果在windows下可以用tskill PID命令來實現,如果是c語言,只需要用system函數就可以實現

#include"stdio.h"
#include"stdlib.h"
intmain()
{
system("tskillXXXX");
return0;
}

其中XXXX就是你需要傳入的進程的PID


如果是linux或者unix的系統


則用kill命令:

#include"stdio.h"
#include"stdlib.h"
intmain()
{
system("killXXXX");
return0;
}

XXX一樣是進程的PID

2. Linux 環境下的C語言, 關於 kill 發送信號和 signal() 函數, 具體問題在以下代碼的注釋處

pause()會令目前的進程暫停(進入睡眠狀態), 直到被信號(signal)所中斷。

當50信號觸動了,pause將退出睡眠狀態,執行printf和return

3. c語言怎麼關閉正在運行的應用程序

可以通過system 函數,調用dos命令taskkill實現關閉正在運行的應用程序。

system("taskkill /im notepad.exe");
會關閉記事本應用。
system("taskkill \F /pid 1234 \T");
會強制結束pid為1234的進程及其子進程。

關於taskkill的詳細描述如下:
TASKKILL [/S system [/U username [/P [password]]]] { [/FI filter] [/PID processid | /IM imagename] } [/F] [/T]

參數列表:
/S system 指定要連接到的遠程系統。
/U [domain\]user 指定應該在哪個用戶上下文
執行這個命令。
/P [password] 為提供的用戶上下文指定密碼。如果忽略,提示輸入。
/F 指定要強行終止的進程。
/FI filter 指定篩選進或篩選出查詢的的任務。
/PID process id 指定要終止的進程的PID。
/IM image name 指定要終止的進程的圖像名。通配符 '*'可用來指定所有圖像名。
/T Tree kill: 終止指定的進程和任何由此啟動的子進程。
/? 顯示幫助/用法。
篩選器:
篩選器名 有效運算符 有效值
----------- --------------- --------------
STATUS eq, ne 運行 | 沒有響應
IMAGENAME eq, ne 圖像名
PID eq, ne, gt, lt, ge, le PID 值
SESSION eq, ne, gt, lt, ge, le 會話編號
CPUTIME eq, ne, gt, lt, ge, le CPU 時間,格式為
hh:mm:ss。
hh - 時,
mm - 鍾,ss - 秒
MEMUSAGE eq, ne, gt, lt, ge, le 內存使用,單位為 KB
USERNAME eq, ne 用戶名,格式為
[domain\]user
MODULES eq, ne DLL 名
SERVICES eq, ne 服務名
WINDOWTITLE eq, ne 窗口標題
注意: 只有帶有篩選器的情況下,才能跟 /IM 切換使用通配符 '*'。
注意: 遠程進程總是要強行終止,
不管是否指定了 /F 選項。

4. 在linux c編程里看到一句代碼:kill(func(), SIGHUP);func()是子函數,請問這句是什麼意思

func()函數返回一個進程ID,SIGHUP是signal信號中的一種處理方式,系統對SIGHUP信號的默認處理是終止收到該信號的進程。所以若程序中沒有捕捉該信號,當收到該信號時,進程就會退出。

5. 在Linux下用C語言編程

4。守護進程的創建
如果你在DOS時代編寫過程序,那麼你也許知道在DOS下為了編寫一個常駐內存的程序我們要編寫多少代碼了.相反如果在Linux下編寫一個"常駐內存"的程序卻是很容易的.我們只要幾行代碼就可以做到. 實際上由於Linux是多任務操作系統,我們就是不編寫代碼也可以把一個程序放到後台去執行的.我們只要在命令後面加上&符號SHELL就會把我們的程序放到後台去運行的. 這里我們"開發"一個後台檢查郵件的程序.這個程序每個一個指定的時間回去檢查我們的郵箱,如果發現我們有郵件了,會不斷的報警(通過機箱上的小喇叭來發出聲音). 後面有這個函數的加強版本加強版本
後台進程的創建思想: 首先父進程創建一個子進程.然後子進程殺死父進程(是不是很無情?). 信號處理所有的工作由子進程來處理.

#include
#include
#include
#include
#include
#include
#include

/* Linux 的默任個人的郵箱地址是 /var/spool/mail/用戶的登錄名 */

#define MAIL "/var/spool/mail/hoyt"

/* 睡眠10秒鍾 */

#define SLEEP_TIME 10

main(void)
{
pid_t child;

if((child=fork())==-1)
{
printf("Fork Error:%s\n",strerror(errno));
exit(1);
}
else if(child>0)
while(1);
if(kill(getppid(),SIGTERM)==-1)
{
printf("Kill Parent Error:%s\n",strerror(errno));
exit(1);
}
{
int mailfd;

while(1)
{
if((mailfd=open(MAIL,O_RDONLY))!=-1)
{
fprintf(stderr,"%s","\007");
close(mailfd);
}
sleep(SLEEP_TIME);
}
}
}

你可以在默認的路徑下創建你的郵箱文件,然後測試一下這個程序.當然這個程序還有很多地方要改善的.我們後面會對這個小程序改善的,再看我的改善之前你可以嘗試自己改善一下.比如讓用戶指定郵相的路徑和睡眠時間等等.相信自己可以做到的.動手吧,勇敢的探險者.
好了進程一節的內容我們就先學到這里了.進程是一個非常重要的概念,許多的程序都會用子進程.創建一個子進程是每一個程序員的基本要求!

熱點內容
首選dns伺服器地址包頭 發布:2025-08-28 20:55:12 瀏覽:703
nosql和sql 發布:2025-08-28 20:55:00 瀏覽:127
付笛生任靜超級訪問 發布:2025-08-28 20:49:20 瀏覽:963
和諧1號密碼鎖如何恢復出廠設計 發布:2025-08-28 20:34:35 瀏覽:23
python列表解析 發布:2025-08-28 20:24:12 瀏覽:353
md5加密亂碼 發布:2025-08-28 20:07:03 瀏覽:64
lol頭像在那個文件夾 發布:2025-08-28 20:02:14 瀏覽:385
安卓手機如何轉換聲音模式 發布:2025-08-28 19:55:05 瀏覽:485
樂視手機開機密碼忘了怎麼解鎖 發布:2025-08-28 19:54:18 瀏覽:243
網路爬蟲java源碼 發布:2025-08-28 19:49:06 瀏覽:11