Linux-main.c內的函式命名方式

節錄自-請教Linux kernel的coding style

Q:

覺得對Linux kernel一些function的命名方法很不能瞭解,
比如說__schedule_tail()這個函式會在前面加兩個底線。
還有一些macro也是,
比如說__i386__會在i386左右兩邊各加兩個底線,
不知道是什麼意思。

Ans:

這些底線通常只是用來區別.
例如 __sprintf() 是 kernel 自己的, sprintf() 是 glibc 的 external.
由於 system boot 的時候還沒載入 glibc, 所以不能使用 sprintf,
所以 kernel 必須自己有函式來達到這個功能. 而為了避免跟 glibc 的
sprintf() 搞混, 所以加上一些不太可能會用的字元.

 

延伸閱讀:

  1. Dave Jones: Kernel hacking mini-howto (中譯)
  2. Linux 内核代码风格
  3. User space 与 Kernel space
廣告

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com 標誌

您的留言將使用 WordPress.com 帳號。 登出 /  變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 /  變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 /  變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 /  變更 )

w

連結到 %s