簡體   English   中英

冗余Linux內核系統調用

[英]Redundant Linux Kernel System Calls

我正在開發一個項目,它掛鈎到各種系統調用並將內容寫入日志,具體取決於調用的是哪一個。 因此,例如,當我更改文件的權限時,我會在跟蹤舊權限和新權限的日志文件中寫一個小條目。 但是,我在確定我應該注意的位置時遇到了一些麻煩。 對於上面的例子,strace告訴我“chmod”命令使用系統調用sys_fchmodat()。 但是,還有一個sys_chmod()和一個sys_fchmod()。

我確信內核開發人員知道他們正在做什么,但我想知道:所有這些(看似)冗余系統調用的重點是什么,是否有關於哪些用於什么的規則? (即“at”系統調用或以“f”為前綴的那些意味着做某些特定的事情?)

歷史:-)

一旦創建了系統調用,就無法對其進行更改,因此當需要新功能時,將創建新的系統調用。 (當然這意味着在創建新的系統調用之前有一個很高的標准)。

是的,有一些命名規則。

  • chmod采用文件名,而fchmod采用文件描述符。 stat與fstat相同。
  • fchmodat采用文件描述符/文件名對(目錄的文件描述符和目錄中文件名的文件名)。 其他*在呼叫時相同; 有關說明,請參閱http://kerneltrap.org/man/linux/man2/openat.2的NOTES部分。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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