pipeをC言語で実装しようという課題が出た際、pid_tという型を見つけました。
構造体の一種かと思いきや、headファイルを探してもそれらしい記述がない。
じゃあこいつ何者?って思ったのでメモ。
pid_tはマクロのひとつ
pid_tというのは、FreeBSDで定義されているマクロの一つ。
unistd.hをincludeしたら使えます。
intかlongかはマシンや実装によって変わりますが、
最大値が99999(5桁まで)という点は同じ。
なぜintでなくpid_tを使うのか
fork関数の戻り値がintじゃなくてpid_tだから。
forkを使う時に必要になる。
じゃあ致し方ない。使うしかあるまい。
【アイスブレイク】intとlongの違いを復習する。
int型とlong型とlong long型の違いは、計算機環境(CPUのビット数)に依存します。
int型はCPUのビット数と同じビット数の整数、longは32ビットの整数、long longは64ビットの整数となっている場合が多いように思います。
stackoverflow
C言語型多すぎ問題。とか初学者の時は思ってましたが(今も初学者ですが)。
最初はsize_tかssize_t使っときゃオーバーフローなんてそうそう起きないし!
くらいの浅い認識だったものの、プログラムを操作しているとそういう簡単な話ではなくなるんだなと思いました。
必要最低限の型を、エラーを想定しつつ先手を打って対策しておく。
これが必要なのかなと。
型を把握しているおかげでtypescriptの学びのコストが減ったし、
プログラミングを学びたい方にいいのかもしれません。配列とかポインタとかもそうですね。
就活してる時は、「そんな言語今時使わねーよ」って散々言われましたけどね。
基礎からわかってて、応用が効くエンジニアになって見返してやろう。