「C言語による実践Linuxシステムプログラミング」目次

●Chapter1 ようこそC言語とLinuxの世界へ

1-1 Linuxの特徴

Linuxとは

Linuxと他のOS

Linuxの使い道

1-2 C言語の特徴

C言語とは

C言語の長所と短所

1-3 本書でのC言語記述のルール

概要

インデントの付け方

関数名・変数名

関数

goto文

ソースファイル分割

1-4 Linuxでの開発手順

開発環境の準備

開発手順

デバッグ

メモリデバッグ

1-5 プログラムの信頼性

概要

作ったときに確認する

サーバの必須条件(死なない)

まとめ

1-6 プログラムの高速化

概要

遅いプログラム

無駄なループ

メモリの消費

ツールによる速度検討

低CPU負荷の重要性

まとめ

●Chapter2 システムプログラミング入門

2-1 構造体・共用体・ビットフィールド

概要

構造体

共用体

ビットフィールド

まとめ

2-2 可変引数

概要

可変引数の用途

可変引数のプログラミング

まとめ

2-3 strtok()と2バイト文字の取り扱い

概要

strtok()関数

2バイト文字使用時の注意

サンプル

まとめ

2-4 strcpy()とstrcat()の安全化

概要

サンプル

まとめ

2-5 アドレスとポインタ

概要

アドレス

ポインタ

ポインタのポインタ

関数のポインタ

メンバアクセス演算子

まとめ

●Chapter3 メモリの利用

3-1 静的なメモリ割り当て

概要

配列のメリットとデメリット

サイズについての注意

確保場所についての注意

速度に対する注意

バッファオーバーフロー

まとめ

3-2 動的なメモリ割り当て

概要

動的割り当てのメリットとデメリット

動的なメモリ確保の使い方

動的なメモリ確保の注意

realloc()使用時の注意

realloc()で得られるアドレス

realloc()とmalloc()

まとめ

3-3 mmap()の使いかた

概要

サンプル

まとめ

●Chapter4 ファイル入出力

4-1 ディレクトリ内容の読み出し

概要

使用方法

サンプル

まとめ

4-2 freopen()の使いかた

概要

サンプル

まとめ

4-3 FIFO(名前付きパイプ)の使いかた

概要

使用方法

注意点

サンプル

まとめ

4-4 1バイト単位での文字入力

概要

サンプル

まとめ

4-5 動的行単位入力関数の作成

概要

サンプル

まとめ

4-6 ラージファイルの使いかた

概要

サンプル

まとめ

●Chapter5 ネットワーク

5-1 TCP/IPクライアントプログラム

概要

クライアントプログラム

参考

まとめ

5-2 TCP/IPサーバプログラム

概要

マルチクライアント・サーバ

まとめ

5-3 UDP/IPクライアントプログラム

概要

クライアントプログラム

まとめ

5-4 UDP/IPサーバプログラム

概要

サンプル

まとめ

5-5 高レベル関数群によるRPC

概要

サンプル

まとめ

5-6 低レベル関数群によるRPC

概要

サンプル

サーバの起動方法

クライアントの実行

まとめ

●Chapter6 プロセス

6-1 シグナルハンドラの使いかた

概要

サンプル

まとめ

6-2 スリープについて(シグナルの例)

概要

サンプル

まとめ

6-3 プロセスの起動と複製

概要

system()によるプロセス起動

popen()によるプロセス起動

fork()/exec*()/pipe()

まとめ

6-4 プロセスの終了と待機

概要

サンプル

まとめ

6-5 デーモン

概要

サンプル

まとめ

6-6 syslogの使いかた

概要

設定

サンプル

まとめ

6-7 共有ライブラリ

概要

サンプル

動的リンク

まとめ

●Chapter7 マルチスレッド

7-1 POSIXスレッドの使いかた

概要

サンプル

まとめ

7-2 ミューテックスによる排他

概要

サンプル

まとめ

7-3 マルチスレッドでのプロセス複製

概要

サンプル

まとめ

7-4 マルチスレッドでのシグナル

概要

サンプル

まとめ

●Chapter8 プロセス間通信(IPC)

8-1 共有メモリ

概要

使用方法

サンプル

まとめ

8-2 セマフォ

概要

サンプル

まとめ

8-3 メッセージキュー

概要

サンプル

まとめ

●Chapter9 日本語処理

9-1 iconvによる文字コード変換

概要

使用方法

サンプル

まとめ

9-2 ワイドキャラクタ(wchar)の取り扱い

概要

使用方法

サンプル

まとめ

●Chapter10 実践アルゴリズム

10-1 検索アルゴリズム

概要

線形サーチ

バイナリサーチ

ハッシュサーチ

まとめ

10-2 ワイルドカードマッチング

概要

サンプル

まとめ

10-3 プロトタイプ宣言生成ツール

概要

サンプル

まとめ

●Chapter11 データ同期システムの開発

11-1 プログラムの仕様

概要

目的

処理概要

前提条件

設定ファイル

通信プロトコル

11-2 共通ライブラリ

概要

ソケット関連

文字列処理関連

ログ関連

文字コード変換関連

ファイルロック関連

ビルド

11-3 配信側プログラム

概要

ソースファイル

ビルド

11-4 受信側プログラム

概要

ソースファイル

ビルド

11-5 送受信の動作例

概要

配信側の準備

受信側の準備

wlSyncCの起動(初回)

wlSyncCの起動(2回目・データ変更なし)

wlSyncCの起動(3回目・データ変更あり)

wlSyncCの起動(4回目・ファイルの追加と削除あり)

IPv6環境での実験

まとめ

●コラム目次

コラム1 codethenspec

コラム2 ソースコードは嘘をつかない

コラム3 品質に最も影響するもの

コラム4 私の仲間達



from 2007/11/20