【Linux】カーネル総合4【Kernel】
■ このスレッドは過去ログ倉庫に格納されています
0001login:Penguin
2007/12/02(日) 16:53:13ID:v60lx45q【Linux】カーネル総合3【Kernel】
ttp://pc11.2ch.net/test/read.cgi/linux/1146235963/
0685login:Penguin
2009/05/31(日) 22:54:30ID:OVItpWgvは地上にはなく宇宙遥彼方
0686login:Penguin
2009/06/01(月) 15:48:42ID:Due7hYNZこの前、ついにあきらめて完全に削除されていたような・・・
やっと、サブアーキがなくなったーーとIngo大喜び。ネコまっしぐら
0687login:Penguin
2009/06/05(金) 00:20:12ID:qIsowSsxhttp://www.atmarkit.co.jp/flinux/rensai/watch2009/watch05a.html
それはFirefoxのプチフリーズ問題から始まった
さらばorderedモード、ext3のデフォルトがwritebackモードに変更
お前のページを共有する、抵抗は無意味だ――KSM
0688login:Penguin
2009/06/06(土) 00:33:50ID:zT5/Y8AY//_ [][]// ,,-―''':::::::::::::::ヽヾヽ':::::/
// \\ // /::::::::::::::::::::::::::::::i l | l i:::::::ミ 2150edc6c5cf00f7adb54538b9ea2a3e9cedca3fを
 ̄  ̄  ̄/ /:::::::::,,,-‐,/i/`''' ̄ ̄ ̄ `i::;|
―`―--^--、__ /:::::::::=ソ / ヽ、 / ,,|/ commitしたのは
/f ),fヽ,-、 ノ | 三 i <ニ`-, ノ /、-ニニ' 」')
i'/ /^~i f-iノ |三 彡 t ̄ 。` ソ ハ_゙'、 ̄。,フ | ) 誰だぁっ!!
,,, l'ノ j ノ::i⌒ヽ;;|  ̄ ̄ / _ヽ、 ̄ ゙i )
` '' - / ノ::| ヽミ `_,(_ i\_ `i ヽ、 ∧ ∧ ∧ ∧
/// |:::| ( ミ / __ニ'__`i | Y Y Y Y Y
,-" ,|:::ヽ ミ /-───―-`l | // |
| // l::::::::l\ ||||||||||||||||||||||/ | // |
/ ____.|:::::::| 、 `ー-―――┴ / __,,..-'|
/゙ー、,-―'''XXXX `''l::,/| ー- 、__ ̄_,,-"、_,-''XXXXX |
/XX/ XXXXXXXXXX| | _, /ノXXXXXXXXXX|
http://www.linuxhq.com/kernel/v2.6/29/fs/ext4/super.c
noextentsが消えた
0689login:Penguin
2009/06/06(土) 01:06:36ID:s5ChGVIv0690login:Penguin
2009/06/06(土) 10:30:27ID:llsk3snNJan Karaがext3に戻れなくなるとか反対していた気もするが
0691login:Penguin
2009/06/06(土) 11:28:46ID:llsk3snNマージコミットの見方を教えておく
git show 2150edc6c5cf00f7adb54538b9ea2a3e9cedca3f
すると
commit 2150edc6c5cf00f7adb54538b9ea2a3e9cedca3f
Merge: cd76469... 4b90567...
Author: Linus Torvalds <[email protected]>
Date: Thu Jan 8 17:14:59 2009 -0800
というヘッダが表示される。このMerge行重要。
んで、これをコピー&ペーストして
git log -p cd76469..4b90567
と打つ。んで、noextentsで検索すると犯人はTed Tso であることが分かる。すでに知っていたらすまん
0692login:Penguin
2009/06/06(土) 13:00:57ID:/VR1XxATイラン
0693login:Penguin
2009/06/10(水) 23:39:02ID:fj4chPWLもっと高速にする方法ご存知ないでしょうか
0694login:Penguin
2009/06/11(木) 08:38:38ID:EilXbBGo0695login:Penguin
2009/06/11(木) 09:42:43ID:vwI/yHy2共有メモリはどう?
0696login:Penguin
2009/06/11(木) 09:51:14ID:uaZByA8Ounix domain socketで転送
0697login:Penguin
2009/06/11(木) 13:38:06ID:LDTPlndN欧州議会みたいにいろんな国選出の技術者の討論で決めるのですか?
0698login:Penguin
2009/06/11(木) 17:05:19ID:2biNdNJj0699login:Penguin
2009/06/11(木) 21:09:05ID:ZSHW+6x20700login:Penguin
2009/06/11(木) 21:17:50ID:qTTLr2eL0701login:Penguin
2009/06/11(木) 21:20:21ID:LDTPlndN勉強になった、ありがとう。
0702login:Penguin
2009/06/11(木) 23:12:43ID:LBj0DDNXどちらがいいんですかね?
POSIXの方が速いような記述は見られるけど
IPCとの比較が見てみたい
0703login:Penguin
2009/06/12(金) 18:52:44ID:62lG4Kk/そうですか・・・
Linux オタワ
0704login:Penguin
2009/06/12(金) 21:02:37ID:j0w8fT+r原田知世がスカトロ好きってそんなに有名だっけw
それにしても本当にひどい名前だよ、まったく
0705login:Penguin
2009/06/13(土) 00:16:04ID:WC1bTh8Yちょw
そんな実名だしちゃ、まずいっしょ
いずれにせよ、2.26.30 以降はスカトロLinux なんだなー
0706login:Penguin
2009/06/13(土) 02:01:01ID:ejf5oGI/こういう身近な話だと、わかりやすい
ほんとおもしろいわ
0707login:Penguin
2009/06/13(土) 11:13:38ID:xcULKyPSググったらmake menuconfigすると表示されるメニューは
ドライバソースの各フォルダにあるKconfigとMakefileを
編集すればできそうなことは分かったのですが、Kconfigに
カスタムドライバを追加する方法を分かりやすく解説した
ページがあれば教えていただけないでしょうか。
下記のようにデバイスドライバのツリーを追加したいのですが
KconfigとMakefileを編集した後、make menuconfigを
実行しても、新しくドライバツリーに項目が増えてくれなくて
悩んでいます。
Device Drivers --->
Hoge device drivers --->
<M> Hoge hoge device
宜しくお願いします。
0708login:Penguin
2009/06/13(土) 11:48:10ID:ycnhXlHO実際に項目を追加してるcommitの差分を見ればいい
0709login:Penguin
2009/06/13(土) 12:46:47ID:xcULKyPSレスありがとうございます。
ソースは見ているのですが、Device Drivers項目の中に、新しく
Hoge Driversというサブ項目を追加しているような例が見つかりません。
Misc devices項目など同一階層に新規項目を作りたいのですが・・・
下記のようにしてもDevice Drivers内に Hoge device drivers が
表示されない状況です。
drivers/Kconfigに、 source "drivers/hoge/Kconfig" を追加
drivers/Makefileに、obj-y += hoge/ を追加
drivers/hoge/Kconfigに下記内容を記述
menu "Hoge device drivers"
config HOGE_TEST
tristate "Hoge hoge device "
default y
help
Hoge hoge device driver.
endmenu
drivers/hoge/Makefileに下記内容を記述
obj- := hoge.o # Dummy rule to force built-in.o to be made
0710login:Penguin
2009/06/13(土) 15:11:15ID:ycnhXlHO元ファイルにtypoとかあったりしないよ・・・ね?
drivers/Makefile:
...
obj-y += hoge/
drivers/Kconfig:
...
source "drivers/hoge/Kconfig"
drivers/hoge/Makefile:
obj-$(CONFIG_HOGE_TEST) += hoge.o
drivers/hoge/Kconfig:
menu "Hoge device drivers"
config HOGE_TEST
tristate "Hoge hoge device"
default y
help
Hoge hoge device driver.
endmenu
0711login:Penguin
2009/06/13(土) 23:08:37ID:anvVj87Aもしくはメニューが Drivers/Char/Serial の奥底とかに埋まってる。
menuconfig 起動して HOGE_TEST を検索してみればわかると思うが。
つか、.config に #CONFIG_HOGE_TEST is not defined とか
入ってるかどうかは確認したのか?
0712login:Penguin
2009/06/14(日) 07:23:59ID:5XYxUxKeSolaris,HP-UX,AIX,Linux
マイクロ
Windows,Mac
0713login:Penguin
2009/06/17(水) 12:47:13ID:7xjbwVQk0714login:Penguin
2009/06/17(水) 23:33:34ID:APJbtoA3Windowsはマイクロカーネルではない。
http://www.cs.vu.nl/~ast/reliable-os/
0715login:Penguin
2009/06/18(木) 00:21:50ID:jUFA0OA60716login:Penguin
2009/06/18(木) 00:45:49ID:ydzluLGAいや、>>714のリンクを見れば分かるが、Tanenbaumはマイクロカーネル扱いしてる。
FreeBSDの各種機能がカーネル空間にあるのはco-locationという技術であって、
それでもメッセージ通信をしているのに変わりはないのでマイクロカーネル扱い。
0717login:Penguin
2009/06/18(木) 01:05:41ID:K/QPtrIN0718login:Penguin
2009/06/18(木) 01:09:48ID:K/QPtrIN0719login:Penguin
2009/06/18(木) 01:17:54ID:ydzluLGAどこにそんな奴がいるんだ?
0720login:Penguin
2009/06/18(木) 08:08:03ID:ROmx8PKuWindowsはマイクロカーネルのほうに近いんじゃない?
良くも悪くも。
0721login:Penguin
2009/06/18(木) 08:34:42ID:P5FnQwjc0722login:Penguin
2009/06/18(木) 12:58:50ID:ROmx8PKuなにしろ仕様書に「まだ変わる」と書いてあるんだから
まだまだ何回も変わるだろうな。
0723login:Penguin
2009/06/18(木) 21:36:02ID:/7hyuS6j極端にしたらデメリットが馬鹿にならなくなるから
0724login:Penguin
2009/06/18(木) 22:24:57ID:kG3j8SQv語源(モノリス=1つの岩)と意味を知ってれば間違えようがないのにね。
0725login:Penguin
2009/06/19(金) 00:53:23ID:pQJhBuk1スラドだったか
0726login:Penguin
2009/06/19(金) 01:25:37ID:jIhK5NOW0727login:Penguin
2009/06/19(金) 07:00:15ID:KkOlQ/pH語源は例の「十字軍の時代に」って奴だ
0728login:Penguin
2009/06/19(金) 10:28:12ID:pDdjOaAM十二世紀半ばに西欧にて発生した。
「モノシリアン」とは第2回以降の十字軍遠征を阻む、シリア(聖書でアラムの地とされる、
聖地エルサレムを含む西アジアの地中海に面する一帯の地域)の回教徒達(Syrian)の
結束したさまを指す十字軍内部で用いられていた隠語であり、十字軍衰退とともに
一般人への回教文化の流入とともに広がった。
現在、「モノシリック」は一つに統一され強固にまとまったさまを指す言葉として
用いられている。
例えばモノシリック・カーネルとは一枚岩のような丈夫なカーネルということである。
0729login:Penguin
2009/06/19(金) 14:24:33ID:pQJhBuk1728さんって物知りなんですね
0730login:Penguin
2009/06/19(金) 14:49:17ID:9Fvtvp5W0731login:Penguin
2009/06/19(金) 17:54:48ID:ucgmQt3s0732login:Penguin
2009/06/20(土) 14:13:18ID:scxDjYjsトラ技5月号あたりの
新入社員向け特集で毎年出てくる。
0733login:Penguin
2009/06/20(土) 20:40:19ID:MZ+4ddd00734login:Penguin
2009/06/21(日) 23:29:12ID:VQh+3f2H0735login:Penguin
2009/06/21(日) 23:34:37ID:GKm9ryra0736login:Penguin
2009/06/22(月) 00:05:07ID:gHVjWzz2CONFIG_NUMA: │ Enable NUMA (Non Uniform Memory Access) support.
│ The kernel will try to allocate memory used by a CPU on the
│ local memory controller of the CPU and add some more
│ NUMA awareness to the kernel.
│ For 64-bit this is recommended if the system is Intel Core i7
│ (or later), AMD Opteron, or EM64T NUMA.
そうみたい。S5500HCV買ってくる。
0737login:Penguin
2009/07/01(水) 21:41:05ID:RjIEoEzahttp://www.atmarkit.co.jp/flinux/rensai/watch2009/watch06a.html
ファイルシステム周りの追加
日本発のログ構造化ファイルシステム「NILFS」
EXOFS
POHMELFS
FS-Cache
relatimeがデフォルトでONに
セキュリティ周りの強化
TOMOYO
IMA
ネットワーク周りの強化
Reliable Datagram Sockets(RDS)
IEEE 802.11w(wireless management frame protection support)
そのほか、カーネルコアの変更
カーネルイメージを、従来のGZIPだけでなく、LZMA/BZIP2でも圧縮できるようになりました。LZMAは伸長時間の速さと高圧縮率を兼ね備えており、期待が持てます
カーネルのzImageがとうとうサポートされなくなりました。bzImageで困りませんからね
x86の最後のサブアーキテクチャ「Voyager」のサポートコードが削除され、x86 archからサブアーキテクチャ対応コードが削除されました。「これでメンテが簡単になる」と、x86開発者が泣いたとか
adaptive spinning mutexがマージされました。もはやmutexはロック競合時にスリープするとは限りません
0738login:Penguin
2009/07/01(水) 23:52:13ID:xu0kECu7zImage無くなったのはx86だけじゃねえのか?
まあどうでもいいことだが。
0739login:Penguin
2009/07/02(木) 14:14:02ID:/ScnEAS7ほかのアーキだと元々 make zImage が存在しないような
0740login:Penguin
2009/07/02(木) 14:27:45ID:/ScnEAS70741login:Penguin
2009/07/02(木) 14:34:11ID:7A/mbtL3べつに必須の機能じゃないので無い方が多いかもしれんが、
使えるのもある。
さすがにbzImageはx86だけだが。
0742login:Penguin
2009/07/02(木) 14:34:12ID:JUQuwRcWつ http://www.kernelnewbies.org/
0743login:Penguin
2009/07/02(木) 18:55:26ID:0KAGXtNr表示をしたいんですが、ioctlとか使って実現する方法ってありますか?
0744login:Penguin
2009/07/12(日) 19:00:16ID:Hd0P+JHmDirectFBあたりは、そうやって実装してるよね
0745login:Penguin
2009/07/22(水) 03:26:29ID:vGwEU6X3YLUG 第97回カーネル読書会 TOMOYO Linuxメインライン化記念勉強会
http://zoome.jp/koedoyoshida/diary/5/
0746login:Penguin
2009/07/22(水) 23:07:37ID:Ihq5K6Ddhttp://sourceforge.jp/magazine/09/07/21/0342227
0747login:Penguin
2009/07/23(木) 18:18:38ID:7uKirgZEカーネルは
テスト無いので
レガシーだ
0748login:Penguin
2009/07/23(木) 19:13:55ID:P+5ig7CA(1)遺産。遺物。
(2)コンピューター分野で,旧世代の技術に基づいたハードウエア・ソフトウエアなどの総称。
0749login:Penguin
2009/07/23(木) 23:43:17ID:ndnD86SS0750login:Penguin
2009/07/24(金) 05:29:49ID:0MjShUNk0751login:Penguin
2009/07/24(金) 22:00:45ID:qlwn44yy世界がテストベッド。
テスト手順は人間の本能に刻まれている。
100万個の目玉は1万ページのテスト手順に勝る。
・・・とか信じてそうだ。
実は誰もテストせず数年経過とかあるから怖い。Signed-off-by,
Reviewed-Byに加えて
Tested-by:<tester-sig>
Tested-with: <URL-to-testcode>
とか欲しくなるぞ。
0752login:Penguin
2009/07/25(土) 12:06:02ID:4Qinpv4ZTested-by:は昔から使われてるぞ。
0753login:Penguin
2009/07/25(土) 12:52:25ID:3/suj8BZじゃなくて、commitされるものはどれもテストされるべき
って言いたいんじゃない?
0754login:Penguin
2009/07/25(土) 15:16:29ID:wTyfgRHdただ、ドライバとかはむずかしいのかもとは思った。
0755login:Penguin
2009/07/26(日) 13:22:45ID:FmTSWpi4/proc/uptimeに入っている値の意味ってkernelのバージョンによって変わりうるのだろうか?
最近、Fedora11 x86-64 (kernelは2.6.29系)をインストールしたPCにおいて、/proc/uptimeの
値は稼働時間(秒)+謎の値(稼働時間より妙に小さい)になっている感じなのだが、
Feora11を入れるまでは稼働時間(秒)+アイドル時間(秒)だった。manの説明を見る限り、
以前の挙動の方が正しいように見える。
ちなみに、稼働しているPCの負荷はかなり低くてアイドル時間がほとんどを占めているので、
同じフォーマットの値だとは考えにくい。
何か仕様変更があったのだろうか?
0756login:Penguin
2009/07/26(日) 17:47:58ID:F499QACgコードを読む限り、idleを表示しようとしてるな。うちのマシン(mainlineの最新)ではuptimeは以下のようになっており、
妥当な値。
で、最近デカイ修正ないから、regressionに心当たりないなぁ
/proc/uptime
----------------------
2295257.97 1218617.97
CPUを100%つかうプロセスを1分動かすと、2つの値はそれぞれ、どれだけ動く?
0757login:Penguin
2009/07/26(日) 18:10:16ID:F499QACgLKML読んでて、テストコードでなんとかなりそうな問題って少ないんだが、具体的にはどうよう状況を想定してる?
例をあげる。
定期的にregressionする問題児機能として、cpu-hotplug, memory-hotplugがあるが、これは明らかに
開発者がテストできないのが問題。
かつ、CPUやメモリを挿抜できるマシンを見たこと無いと何に気をつけないといけないか、普通は一生知る機会がない。
カーネル内に普通にif 文入ってりゃカーネル勉強してれば自然と身につくけど、速度の兼ね合いで巧妙に if文が
入らないようにしてあるケースが多いので、コードを読んでいてもまず理解できん。
個人的な経験でいうと、ユニットテストが有効なのはアプリケーションレイヤだよ。テストってのは自分のもってる仮定が真か
否かを確認する作業なので、よく分からないハードの互換性のための機能とか、よく分からないアプリの互換性のための
機能とかは、テストできない。
それに加えて、性能のために、無理矢理ロックレスにしてる部分ってユニットテストすると、failureするよね。
でも人間は気づかないのでOK理論でまかり通ってる。
この「人間は気づかないはず」ってのはかなり曖昧な根拠なので、すごく予想外のワークロードで破綻したりする。
テスト不足が原因じゃなくて設計時の分析不足が根本なので、テストじゃ品質は上がらない
ちょっと、違う河岸の人の意見が聞きたくなったので、燃料投下ですよ
0758login:Penguin
2009/07/26(日) 19:09:21ID:eLPutGUOfailするロジックを見つけたら必ずテストを追加する
0759login:Penguin
2009/07/26(日) 19:10:20ID:eLPutGUO0760login:Penguin
2009/07/26(日) 22:07:20ID:FmTSWpi4stressをインストールして試してみた。CPUがデュアルコアなので各コアの負荷が100%になるようにしてみた。
[root@localhost stress-1.0.0]# uptime; cat /proc/uptime; stress -c 2 -t 60; cat /proc/uptime
21:58:50 up 1 day, 22:31, 2 users, load average: 0.44, 0.35, 0.14
167498.57 166.57
stress: info: [29421] dispatching hogs: 2 cpu, 0 io, 0 vm, 0 hdd
stress: info: [29421] successful run completed in 60s
167558.58 166.57
[root@localhost stress-1.0.0]# uname -r
2.6.29.6-213.fc11.x86_64
稼働時間の方はちゃんと60秒分増えているけれど、2個目の値は変わらず・・・。
0761login:Penguin
2009/07/26(日) 22:13:34ID:YbAk5UrGハードウェアエミュレータがあれば更に良し。
0762login:Penguin
2009/07/27(月) 07:26:05ID:wJYxMPcLエミュレータなんかかました途端に、それは「エミュレータに対するテスト」
でしかなくなるし、ってかこの世のありとあらゆるデバイスの挙動の
あらゆるケースを実機通り(実機のバグ・不具合含めて)に正確にテスト
できるエミュレータとか、ちょっとありそうにない気がするが。
0763login:Penguin
2009/07/28(火) 06:23:34ID:I6HFN565ごめん、CPU100%ぶんまわしたら、当然idle時間は増えんわな。たぶん省電力関係が悪さをしていると思うので
1) cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_driver
の結果を貼っておくれ
2) 同じディレクトリの scaling_governorをon_demandから(Fedoraならon_demandなんだよね?)、
performance に変更して1日放置してみて
これで直るなら、ただの表示ミスだから気にする必要はない。
0764login:Penguin
2009/07/28(火) 06:37:10ID:I6HFN565起動オプションで、 idle=poll もやってみて。C2/C3 stateに入るときの問題かもしれぬ。
0765login:Penguin
2009/07/28(火) 21:24:21ID:gAPV/qCK0766755
2009/07/28(火) 22:53:13ID:3fzUjTnxレス感謝。
初めに報告した側のPC(以下PC1) はサーバ運用のため実験しにくいので、同じFedora11 x86_64版をインストールし、
同様の状況になっている別PC(以下PC2)で実験してみた。結果は以下のような感じだった。
[root@localhost ~]# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_driver
acpi-cpufreq
[root@localhost ~]# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
ondemand
ちなみにPC1だと
[root@localhost ~]# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
ondemand
[root@localhost ~]# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_driver
powernow-k8
で、PC2でカーネルオプションにidle=pollを追加して起動し、
echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor してみた後は
[root@localhost ~]# cat /proc/uptime
1744.18 0.13
という感じで、残念ながら変化無し。
アイドル時間が検出できないこと以外は運用上の障害は特にないので、そのまま運用してもいいんだけれど
やっぱり気持ち悪いなぁ・・・。
0767login:Penguin
2009/07/30(木) 00:16:00ID:+o444z33を書きたいのですが、iptable_filter.cのipt_hook()とかを使って
できますかね?
0768login:Penguin
2009/08/04(火) 17:34:45ID:Ahd4ZMYm0769login:Penguin
2009/08/04(火) 18:05:10ID:jK3O5/wp0770login:Penguin
2009/08/05(水) 19:03:19ID:NmLViMJY0771login:Penguin
2009/08/05(水) 22:52:05ID:c9kehUAXジャンプ命令は飛び先が命令をfetch終わるまで分からない(当たり前だ)、だから、ジャンプしないほうに可能性が
高い処理を入れておくのが賢い。
確率が半々のif文だったら、飛び先を近くにしておくと、ちょっと先fetchでtakenもnot takenもフェッチされるので
お得だけど、確率が90%の時は残り10%はすんげえ遠くに追いやった方がお得。
よってunlikelyで通らないとヒントづけされたブロックは関数の最後の方に寄せられる。likelyはその逆。
0772login:Penguin
2009/08/05(水) 23:24:28ID:6HIRSosI初見の分岐を見たら、その分岐が手前方向だったら分岐すると予測し
先方向だったら分岐しないと予測すると思ったけど。
理由はもちろん、ループというのがそういう形に作られているため。
(先方向の理由は知らないが、たぶん統計的なものだろう)
で、当然、最適化コンパイラは、
それ(分岐頻度の想定)にあわせた分岐/非分岐のブロック配置をする。
0773login:Penguin
2009/08/06(木) 00:06:36ID:vQt8Mjn6実行プロファイルとか取ってるのかと思ったら、あんま賢くないんだね。
0774login:Penguin
2009/08/06(木) 13:59:03ID:7rlUfYmRプロファイルとってるけど、数に限りがあるから、テーブルにのってないジャンプについては
typicalなコンパイラのクセからポリシーを決めるんだわさ
0775login:Penguin
2009/08/06(木) 22:56:30ID:aRQrUWVtOpen64でビルドしたカーネルそんなことしてるように見えないけど
0776login:Penguin
2009/08/06(木) 23:12:21ID:WIwoXzLG理解した上で書いてる?
そりゃ、カーネルスレでハードの話題はスレ違いだが、話の流れってものがあるから。
このへんみれば、おおよその技術的なことはわかるんじゃないかね。
http://ja.wikipedia.org/wiki/%E5%88%86%E5%B2%90%E4%BA%88%E6%B8%AC
0777login:Penguin
2009/08/07(金) 17:00:34ID:Pvjb3Cze0778login:Penguin
2009/08/07(金) 17:11:24ID:tHF5HJWh0779777
2009/08/07(金) 17:43:38ID:Pvjb3Cze僕にだよね...
例えば、linux/rtnetlin.hだと↓
enum {
RTM_BASE = 16,
#define RTM_BASE RTM_BASE
RTM_NEWLINK = 16,
#define RTM_NEWLINK RTM_NEWLINK
0780login:Penguin
2009/08/07(金) 18:13:53ID:tHF5HJWh型チェックが欲しいときと要らん時があるからだろ。
0782login:Penguin
2009/08/07(金) 18:45:15ID:ZCbtwiUW0783login:Penguin
2009/08/07(金) 19:01:22ID:Pvjb3Czeわざわざenumとdefineと定義してもプリプロセッサを通ったらenumだけになっちゃう
で、コンパイラではenumの定義しか見えないんだから型チェックがしたい/したくないとか制御できてないように思うんですが...
0784login:Penguin
2009/08/07(金) 19:08:38ID:KtOPT9+5/* Standard streams. */
extern struct _IO_FILE *stdin; /* Standard input stream. */
extern struct _IO_FILE *stdout; /* Standard output stream. */
extern struct _IO_FILE *stderr; /* Standard error output stream. */
#ifdef __STDC__
/* C89/C99 say they're macros. Make them happy. */
#define stdin stdin
#define stdout stdout
#define stderr stderr
#endif
>>779 もこの手の要請のせいではないかと予想
■ このスレッドは過去ログ倉庫に格納されています