我已经编写了可以终止给定进程的所有子进程的新系统调用,并且我想在用户调用" exit()"时使用此系统调用。系统调用。
事实上,"退出"系统调用也将被修改。如果"优先级"执行"退出"的过程的价值系统调用大于30然后"退出"系统调用也将使用我自己的新系统调用。
要做到这一点,我已经改变了" do_exit" /kernel/exit.c中的函数,但它没有工作。
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"关于" task_struct"。
中的优先级答案 0 :(得分:3)
使用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__);
}