Discussion:
[問題] 請教Linux kernel的coding style
(时间太久无法回复)
ºñ¯ù¬OŒõ©]š}Šñ
2004-01-30 19:53:21 UTC
Permalink
最近在trace Linux kernel的source code

覺得對Linux kernel一些function的命名方法很不能瞭解

比如說__schedule_tail()這個函式會在前面加兩個底線

還有一些macro也是

比如說__i386__會在i386左右兩邊各加兩個底線

不知道是什麼意思

請問各位有trace過Linux kernel的大大

不知道有沒有相關的文件可以參考 or

跟我說一下如此命名的用意

謝謝 :)

--
┌ φ和風小棧 HoFun.twbbs.org ─────────
└ 〒 chnet.Dorm13.NCTU.edu.tw
Palatis
2004-01-30 20:58:13 UTC
Permalink
Post by ºñ¯ù¬OŒõ©]š}Šñ
最近在trace Linux kernel的source code
覺得對Linux kernel一些function的命名方法很不能瞭解
比如說__schedule_tail()這個函式會在前面加兩個底線
還有一些macro也是
比如說__i386__會在i386左右兩邊各加兩個底線
不知道是什麼意思
請問各位有trace過Linux kernel的大大
不知道有沒有相關的文件可以參考 or
跟我說一下如此命名的用意
謝謝 :)
看 kernel source 之前, 請先把 /path/to/source/Documentations
底下的東西看完 (至少所有檔名先瀏覽一遍, 挑有必要的出來看.)

您的問題, 請先去找 Documentations/kernel-docs.txt 裡面列出來的文章.

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

一些 macro, define 都是這樣用, 下面這段應該很常見:
#ifndef __WHATEVER_H__
#define __WHATEVER_H__
/* code here */
#endif __WHATEVER_H__

- --
最好的是男人 (man) !
請善用 Google (http://www.google.com/) !

Loading...