当前位置:首页 » 编程语言 » 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