這篇文章是對上篇的一個補充。
如何使用系統調用
1、通過c庫來使用系統調用
2、在2.6.18之前的內核使用_syscall宏來使用系統調用。
3、在2.6.19開始廢除了_syscall,而使用syscall()通過向函數提供調用號和參數實現調用
c語言中系統調用
#include <unistd.h> #include <stdio.h> #include <sys/syscall.h> #include <sys/types.h> int main() { pid_tpid; printf("%d\n",syscall(224)); return0; }
查看本欄目更多精彩內容:http://www.bianceng.cn/OS/unix/
若是用匯編實現系統調用,沒有參數時init $0x80即可,若有參數還要把參數壓棧。匯編和你使用的平台有關。
為什麼要用系統調用:
1、系統調用可以提供給用戶空間訪問硬件資源的接口,從而應用程序不用關心具體的硬件細節。如在讀寫文件時,用戶空間不會關心磁盤的類型和哪種文件類型。
2、系統調用可以對系統進行保護,使系統更穩健和安全。系統調用的存在規定了用戶進程進入內核的具體方式,即用戶訪問內核的路徑是事先規定好的。
出處:http://blog.csdn.net/muge0913/article/details/7518556