以前、Linuxカーネルを理解するためにC言語を勉強したい!みたいなことを書いたんですが中々思うように進んでいません。
ですが途中経過でも小出しにしようか・・・ということでCによるプログラミングを学んでいる課程を赤裸々にお届けします。
プログラムの基本といえばもちろん「Hello World」でしょ!ということでいってみましょう。
まずはコンパイルを行う環境から
必要なものは幾つかありますがなによりもコンパイラが必要でしょう。ソースを書いただけでは動かないのですから。
コンパイラと言っても色々あるようなんですがこれまた基本に忠実に「gcc」というものをインストールしてみます。
sudo apt-get install gcc
これでOK。特に設定などしなくても動いてくれるんですからありがたいはなしですね。
あとはソースの保存や実行ファイルの置き場所としてディレクトリを作っておきました。
mkdir /home/ユーザ名/plg/
名前も場所も特に深い意味はありません。ただ、root権限を必要とする作業ではないので一般ユーザのホームディレクトリ直下に「plg」という名前で作成しただけです。
ソースコードを書く
それでは「Hello World」と出力するための簡単なソースを作成してみます。
先ほど作成した作業用ディレクトリへ移動 cd /home/ユーザ名/plg/ sample1.cというファイルを作成 vi ./sample1.c 以下の内容を記述して「:wq」で保存する #include <stdio.h> int main() { printf("hello world\n"); return 0; }
保存ができたらgccコマンドでコンパイルしましょう。
gcc ./sample1.c
すると「a.out」というファイルが作成されますのでこれを実行してみると・・・
./a.out hello world ↑表示された!
今日のまとめ
以前書いた項目を引っ張り出しながら今日の内容を纏めると
- stdio.hというヘッダーファイルをincludeしてライブラリ関数を使えるようにする(1行目)
- ここからがメインの処理だよ(2行目)
- 画面に「hello world」と出力、\nは改行を表す(4行目)
- 処理を終了する(5行目)
という流れになります。
さらに使われているライブラリなどを調べるなら「ldd」や「nm」といったコマンドを用いると関係性などを調べることもできます。
なんだか久しぶりに日記みたいな投稿ではなくパソコンに関連した内容だったので変に緊張してしまいました。
間違いなどありましたらどんどん教えていただけると喜びます。