簡體   English   中英

Linux系統調用返回值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM