9-1.ソース・ビルド・インストールstat関数を使う 今回は、stat関数を使います。 まずは、man 2 statの冒頭です。 型が分かったので、statをコールするプログラムを作ります。 まあ、後はgdbで値を見ていけば、bufの使い方は分かってくるでしょう。ということで... 2018.04.159-1.ソース・ビルド・インストール
9-1.ソース・ビルド・インストールfgetcのバッファサイズ 前回までで、fgetcは中身はポインタ操作のマクロを呼び出していることが分かりました(debianの場合)。 さて、バッファサイズはどれだけなんでしょうか。gdbで確認してみます。 使うソースです。 gdb用にビルドし... 2018.04.149-1.ソース・ビルド・インストール
7-2. バイナリ処理読み込みバッファサイズ readを使った読み込みではバッファサイズを多めにしていたのでfgetcよりも早くファイルが読めました。サイズをいろいろ変えて時間を確認してみます。 このプログラムを使います。 ついでにtest.datが1Gは大きすぎて待ち時間... 2018.04.127-2. バイナリ処理
9-1.ソース・ビルド・インストールfgetcの行方 前回の続きでfgetcの行方を追います。fgetc.c自体はずっと前に削除されていることがわかりましたが(debian)、 代わりに何が使われているかというと_IO_getcでした。 _IO_getcはlibio/getc.cに定義され... 2018.04.139-1.ソース・ビルド・インストール
7-2. バイナリ処理fopenとfgetcとfputcとfcloseを使う 前回はシステムコールを使ってファイル読み出しをしたので、 今回はライブラリ関数を使ってファイル読み出ししてみます。 man 3でそれぞれ型の確認。 ではプログラムです。バッファがいらない分、すっ... 2018.04.117-2. バイナリ処理
7-2. バイナリ処理openとreadとwriteとcloseを使う 前回確認したtruncateソースではopen、closeを直接使ってました。今回はopen、read、write、closeを使ってファイル読み込みをしたいと思います。 各関数の使い方はman 2 ~で確認しておきます。 ... 2018.04.107-2. バイナリ処理
9-1.ソース・ビルド・インストールマイtruncateを作る(その3) 前回まで自作のしょぼいtruncateを作ってましたが、本物のtruncateのソースを見て答え合わせしてみます。 ※truncateのソースは、全文を記事の最後に載せています。 まずオプション解析。getopt_longを使ってま... 2018.04.099-1.ソース・ビルド・インストール