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