日期:2014-05-16  浏览次数:20800 次

请教各位大虾kill_proc的用法
我在内核程序里用kill_proc向用户程序发信号,请问这个函数的最后一个参数是什么意思,使用这个函数有没有什么需要注意的地方。谢谢了

------解决方案--------------------
int
kill_proc(pid_t pid, int sig, int priv)
{
return kill_proc_info(sig, __si_special(priv), pid);
}

#define __si_special(priv) \
((priv) ? SEND_SIG_PRIV : SEND_SIG_NOINFO)

priv=0就是SEND_SIG_NOINFO
priv非0就是SEND_SIG_PRIV
------解决方案--------------------
case (unsigned long) SEND_SIG_NOINFO:
q->info.si_signo = sig;
q->info.si_errno = 0;
q->info.si_code = SI_USER;
q->info.si_pid = current->pid;
q->info.si_uid = current->uid;
break;
case (unsigned long) SEND_SIG_PRIV:
q->info.si_signo = sig;
q->info.si_errno = 0;
q->info.si_code = SI_KERNEL;
q->info.si_pid = 0;
q->info.si_uid = 0;
break;