3
在家庭作业中,我们被要求将系统调用添加到Linux内核(Red Hat 2.4.18)。根据分配,新系统调用的返回值应该是无效的。系统调用本身非常简单(只有一项任务),并且不会出错。 从我阅读和学习系统调用通常返回一个负值表示失败或0表示成功。我的问题是,这只是一种普遍的做法还是必须的?系统调用可以返回无效吗?Linux系统调用返回值
在家庭作业中,我们被要求将系统调用添加到Linux内核(Red Hat 2.4.18)。根据分配,新系统调用的返回值应该是无效的。系统调用本身非常简单(只有一项任务),并且不会出错。 从我阅读和学习系统调用通常返回一个负值表示失败或0表示成功。我的问题是,这只是一种普遍的做法还是必须的?系统调用可以返回无效吗?Linux系统调用返回值
在Linux中,如果所有系统调用都返回,则所有系统调用都会返回很长时间。假设你使用申报系统调用:
SYSCALL_DEFINE0(mycall)
{
/* ... */
}
这导致:
asmlinkage long sys_mycall(void)
如果你没有任何有用的回报和呼叫不能失败,只是每到信号成功时返回0。
它通常被认为是不好的做法,不返回任何有可能失败的功能...... – mtahmed 2012-01-16 09:23:51
Leonid的课? – cha0site 2012-01-16 09:26:38