2 6 20後新增訪問系統呼叫的方式

2021-04-17 23:43:09 字數 753 閱讀 1725

1.

定義系統呼叫號

,/usr/src/linux/include/a**-i386/unistd.h

#define _nr_sy**ycall 318 //

不能與前面已有的重複

#define _nr_syscalls  319//

修改系統中所用系統呼叫數目 2.

在系統呼叫向量表裡新增自定義的系統呼叫函式入口位置,

/usr/src/linux/arch/i386/kernel/syscall_table.s

,以前老版本是

entry.s

.long sys_mysyscall

3.新增系統呼叫定義在include/linux/syscalls.h

a**linkage long sys_add_trustdb(u8 __user * digest,u8 __user *name,int new);

特別注意使用使用者態的指標,需要新增__user

4.在需要的地方

新增系統呼叫實現函式

a**linkage int sys_mysyscall(int a)

編寫使用者態**測試

int main(void)

syscall

是核心提供為使用者程式的乙個函式,

如果不使用

syscall

函式,也可以使用巨集定義,但是在

2.6.20

以後的版本裡,沒有巨集定義,需要自己從其他版本裡複製過來新增。

系統呼叫的方式訪問檔案

1 建立檔案 int create const char filename mode t mode 建立檔案。filename為檔案路徑,mode為檔案許可權,如 s irusr 可讀 s irwxu 可讀 可寫 可執行。也可以用數字表示,如 0755。2 檔案描述 在linux中,所有開啟的檔案都...

Linux 新增系統呼叫的啟示

新的建立檔案描述符的 syscall 一般都支援額外的 flags 引數,可以直接指定 o nonblock 和 fd cloexec,例如 以上 6 個 syscalls,除了最後乙個是新功能,其餘的都是增強原有的呼叫,把數字尾號去掉就是原來的 syscall。o nonblock的功能是開啟 非...

Linux 新增系統呼叫的啟示

新的建立檔案描述符的 syscall 一般都支援額外的 flags 引數,可以直接指定 o nonblock 和 fd cloexec,例如 以上 6 個 syscalls,除了最後乙個是新功能,其餘的都是增強原有的呼叫,把數字尾號去掉就是原來的 syscall。o nonblock的功能是開啟 非...