こんにちは、鯨井貴博@opensourcetechです。
実は私普段からZeus IT CampというITスクールでLinuxやLPICなどについて教えており、Linuxの操作方法やサーバの構築・運用ノウハウについてはあるのですが、
Linux自体の中身であるカーネルが書かれているC言語についてはあまり詳しくありません。
なので、今回はC言語の入り口としてprintf関数やヘッダーファイルなどについて、調べてみようと思います。
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/diff/?id=v4.4-rc4&id2=v4.4-rc3&dt=2
を見ても、.c(C言語で書かれたファイル)や.h(ヘッダファイル)が多く見られます。
printf関数とは、書式付き出力を行うものであり、
単純に言うと文字列を表示することが出来るものです。
(※そんな単純なもんじゃないという意見が聞こえてきそうですが、
「この未熟者め!」とやさしく見守っていただけると助かります。)
ひとまず、手元にあったmac環境でやってみます。
作成したサンプル(test.c)は上記となり、
「C言語のテスト」と標準出力に出力を行うものです。
#include <stdio.h>
→stdio.hというヘッダーファイルを読み込むことを意味する。
int main() { }
→C言語ではプログラムが起動するとmain関数を実行します。
{ }で囲まれた部分がその内容となります。
printf("C言語のテスト\n");
→"(ダブルクォーテーション)で囲まれた文字列を出力します。
\nは改行コードを表し、;(セミコロン)は文の終了を意味します。
return 0;
→ゼロを返し、main関数を終了させます。
作成したサンプル(test.c)を続いてコンパイルします。
gccなどのC言語に対応したコンパイラーが必要になるので、
事前にインストールをしておいてください。
gcc -o test test.c
→test.cを元に、testというファイルを作成(output)しています。
./test
→出来上がった実行ファイル(test)を実行すると、
printfで指定された文字列が出力されます。
また、gcc -v test.cとすると、
test.cで読み込まれるヘッダーファイルのパスなど詳細情報を確認出来ます。
また、仮想的に用意したLinux(CentOS)でやってみると以下のようになります。
※ヘッダーファイルのパスやgccのバージョンが異なるぐらいしか違いはありませんが。
以前ブックオフの激安コーナーで購入した「プログラミング言語C」があったので、
C言語の勉強に役立ちそうです。