本書の主題であるメモリーの割り当ての説明をする前に Linux と C 言語のつながりを整理しときましょう。
まずは知っておきたい C 言語の標準(POSIX)ライブラリーのヘッダーファイルをまとめておきましょう。
まずは誰でも知っておくべきヘッダーファイルです。
-
stdio.h
-
printf / fopen /puts 等の IO 処理
-
stdlib.h
-
メモリーの割り当て(malloc)や文字列変換、乱数の処理
-
string.h
-
メモリーのコピー・設定などの操作や文字列の処理
もう一つは OS の機能とインターフェースしたり、ローレベルでのコーディングに使えるヘッダーファイルです。
-
fcntl.h
-
fcntl関数によってファイルの制御をするためのマクロとその他関数(open / openat / creat 等)
-
unistd.h
-
システムコールのラッパー関数(read / write / close / fork 等)
-
setjmp.h
-
コールスタックの復帰処理(協調的マルチタスク等)
-
signal.h
-
システムシグナルのAPI
さらに処理のために必要な型・(C プリプロセッサー)マクロは以下のヘッダーに定義されます。
-
sys/types.h
-
mode_t / uid_t / gid_t / pid_t / dev_t / clock_t / pthread_t / size_t / time_t 等の型を定義
-
sys/stat.h
-
stat / fstat / lstat 関数から戻る stat 型・マクロの定義
-
sys/mman.h
-
sys/stat.h の構造体には sys/types.h のデータ型も含みまする!!
こんなもんですかね!!!
賢明または懸命な読者には楽勝でござるね!!!
(´・ω・`)