2008年9月22日月曜日

なんとなくWindowsでC言語プログラミング

Linuxのカーネルコードを読みたいと思ったんだが、家にLinuxないしC読めない。
じゃあどうしよう。
 
 

まずMicrosoftがCの開発環境をタダで配っているので自宅のWindows XP SP2にインストールしてみる。

Microsoft Visual C++ 2008 Express Edition
http://www.microsoft.com/japan/msdn/vstudio/express/default.aspx


 

うむ、インストール問題無し。
 
では "hello.c" としてc言語のファイルを適当なテキストエディタで書く。
 

標準入出力の関数色々はいったヘッダファイル "stdio .h" を取り込んでー
正常終了に0を返す main 関数を一個書いて名前をつけて保存、"hello.c"
[sourcecode language='c']
# include

int main() {
printf("Hello Work!\n");
return 0;
}
[/sourcecode]

 

付属のCコンパイラらしきツール "cl.exe" でコンパイルしよう。
>cl hello.c
Microsoft(R) 32-bit C/C++ Optimizing Compiler Version 15.00.30729.01 for 80x86
Copyright (C) Microsoft Corporation. All rights reserved.


hello.c
Microsoft (R) Incremental Linker Version 9.00.30729.01
Copyright (C) Microsoft Corporation. All rights reserved.


/out:hello.exe
hello.obj

 

よし、 "hello.exe" が完成したぞ、早速実行だ。
>hello.exe
Hello Work!

 

ようし問題なし。
 
 

あとはシステムコールを把握するために C言語の勉強しながら "stdio.h" を読み解いてー
Windowsのカーネルソースを想像して、Linuxに当てはめてー
POSIXに思いを馳せて行けばよいのかしら。。。
 

!? 。これはもしやすごく遠回りしているのではなかろうか?