gpt4 book ai didi

linux - 如何在 exit() 系统调用中调用我自己的系统调用

转载 作者:太空宇宙 更新时间:2023-11-04 08:58:11 25 4
gpt4 key购买 nike

我已经编写了可以终止给定进程的所有子进程的新系统调用,并且我想在用户调用“exit()”系统调用时使用这个系统调用。

其实“exit”系统调用也会被修改。如果执行了“exit”系统调用的进程的“priority”值大于30,那么“exit”系统调用也会使用我自己的新系统调用。

为此,我更改了/kernel/exit.c 中的“do_exit”函数,但它不起作用。

void do_exit(long code){
struct task_struct *tsk = current;
int group_dead;

if(tsk->prio > 30){
my_own_sys_call(tsk->pid);
}
...
}

我应该在“do_exit”中调用我自己的系统调用吗?如果是,我不知道在函数的哪一部分调用

顺便说一句,我不确定“prio”是否能获得进程的优先级,因为有很多像“prio”、“static_prio”、“normal_prio”、“rt_priority”这样的元素在优先级方面“任务结构”。

最佳答案

使用atexit .示例:

#include<stdio.h>
#include<stdlib.h>

void exit_func(void)
{
printf("Inside %s\n",__func__);
}

int main()
{
atexit(exit_func);
printf("Inside %s\n",__func__);
}

关于linux - 如何在 exit() 系统调用中调用我自己的系统调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26697020/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com