[英]Linux system calls return value
在家庭作業中,我們被要求向Linux內核添加系統調用(Red Hat 2.4.18)。 根據賦值,新系統調用的返回值應該是無效的。 系統調用本身很簡單(只有一個賦值),沒有錯誤的機會。 從我讀取和學習的系統調用通常返回負值表示失敗或0表示成功。 我的問題是,這只是一種常見的做法還是必須的? 系統調用可以返回void嗎?
在Linux中,如果它們完全返回,則所有系統調用都返回很長時間。 假設您使用以下方式聲明系統調用:
SYSCALL_DEFINE0(mycall)
{
/* ... */
}
這導致:
asmlinkage long sys_mycall(void)
如果您沒有任何有用的返回並且呼叫不會失敗,則每次只返回0表示成功。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.