第1章 はじめに
1.1 本書で扱うシステムプログラミング
1.2 本書の学習目標
1.3 本書が対象とするOS,言語,学習スキル
1.4 実習を進める上で知っておきたい知識
1.5 本書の構成
第2章 おさえておきたいC言語プログラミングのいろいろ
2.1 main引数
2.2 エラー処理
2.3 関数リファレンスの読み方と使い方
2.4 manコマンドで調べる
2.5 errnoとperror
第2章の章末問題
第3章 高水準入出力:テキストファイルの入出力
3.1 ストレージとファイルシステム
3.2 入出力関数の種類
3.3 ファイル入出力の処理の流れ
3.4 ファイルを開く・閉じる
3.5 ファイルの読込み・書込み
3.6 標準入出力
3.7 FILE構造体
第3章の章末問題
第4章 高水準入出力:バイナリファイルの入出力
4.1 バイナリファイルの入出力
4.2 テキストとバイナリによる入出力の比較
4.3 ファイルオフセット
第4章の章末問題
第5章 低水準入出力
5.1 入出力に関するシステムコール
5.2 バッファリング
第5章の章末問題
第6章 ディレクトリやファイルの情報
6.1 ディレクトリ階層
6.2 ファイル一覧を見る
6.3 ファイル情報の取得
6.4 アクセス権
6.5 iノード
第6章の章末問題
第7章 リンク,パーティション
7.1 ハードリンク
7.2 シンボリックリンク
7.3 リンクに関するシステムコール
7.4 パーティション
第7章の章末問題
第8章 仮想アドレス空間
8.1 変数とスコープ
8.2 動的な領域確保
8.3 アドレス空間
8.4 スタック領域の割り当て
第8章の章末問題
第9章 メモリ確保に関するさまざまな問題
9.1 スタックオーバフロー
9.2 動的メモリ確保とメモリリーク
9.3 バッファオーバフロー
9.4 バッファオーバフローを使った攻撃
第9章の章末問題
第10章 プロセス
10.1 プロセスとは
10.2 プロセスの生成
10.3 プロセスの待機
第10章の章末問題
第11章 プログラムの実行と割り込み
11.1 execによるプログラムの実行
11.2 execファミリ
11.3 シグナルによる割り込み
11.4 シグナルに関するシステムコール
第11章の章末問題
第12章 パイプによるプロセス間通信
12.1 パイプとは
12.2 パイプを使った通信
12.3 名前つきパイプ
12.4 リダイレクションとパイプ
12.5 リダイレクションの実装
12.6 パイプの実装
第12章の章末問題
第13章 共有メモリとセマフォ
13.1 共有メモリ
13.2 セマフォによる排他制御
第13章の章末問題
第14章 ソケット通信
14.1 ソケット通信とは
14.2 ソケット通信に関するシステムコールと通信の仕組み
14.3 マルチクライアントへの対応
第14章の章末問題
第15章 スレッド
15.1 基本的なスレッドの使い方
15.2 mutexを用いたスレッド間の排他制御
第15章の章末問題
第16章 おわりに
16.1 そのほかのシステムコール
16.2 演習を終えたあとに
参考文献
索引
1.1 本書で扱うシステムプログラミング
1.2 本書の学習目標
1.3 本書が対象とするOS,言語,学習スキル
1.4 実習を進める上で知っておきたい知識
1.5 本書の構成
第2章 おさえておきたいC言語プログラミングのいろいろ
2.1 main引数
2.2 エラー処理
2.3 関数リファレンスの読み方と使い方
2.4 manコマンドで調べる
2.5 errnoとperror
第2章の章末問題
第3章 高水準入出力:テキストファイルの入出力
3.1 ストレージとファイルシステム
3.2 入出力関数の種類
3.3 ファイル入出力の処理の流れ
3.4 ファイルを開く・閉じる
3.5 ファイルの読込み・書込み
3.6 標準入出力
3.7 FILE構造体
第3章の章末問題
第4章 高水準入出力:バイナリファイルの入出力
4.1 バイナリファイルの入出力
4.2 テキストとバイナリによる入出力の比較
4.3 ファイルオフセット
第4章の章末問題
第5章 低水準入出力
5.1 入出力に関するシステムコール
5.2 バッファリング
第5章の章末問題
第6章 ディレクトリやファイルの情報
6.1 ディレクトリ階層
6.2 ファイル一覧を見る
6.3 ファイル情報の取得
6.4 アクセス権
6.5 iノード
第6章の章末問題
第7章 リンク,パーティション
7.1 ハードリンク
7.2 シンボリックリンク
7.3 リンクに関するシステムコール
7.4 パーティション
第7章の章末問題
第8章 仮想アドレス空間
8.1 変数とスコープ
8.2 動的な領域確保
8.3 アドレス空間
8.4 スタック領域の割り当て
第8章の章末問題
第9章 メモリ確保に関するさまざまな問題
9.1 スタックオーバフロー
9.2 動的メモリ確保とメモリリーク
9.3 バッファオーバフロー
9.4 バッファオーバフローを使った攻撃
第9章の章末問題
第10章 プロセス
10.1 プロセスとは
10.2 プロセスの生成
10.3 プロセスの待機
第10章の章末問題
第11章 プログラムの実行と割り込み
11.1 execによるプログラムの実行
11.2 execファミリ
11.3 シグナルによる割り込み
11.4 シグナルに関するシステムコール
第11章の章末問題
第12章 パイプによるプロセス間通信
12.1 パイプとは
12.2 パイプを使った通信
12.3 名前つきパイプ
12.4 リダイレクションとパイプ
12.5 リダイレクションの実装
12.6 パイプの実装
第12章の章末問題
第13章 共有メモリとセマフォ
13.1 共有メモリ
13.2 セマフォによる排他制御
第13章の章末問題
第14章 ソケット通信
14.1 ソケット通信とは
14.2 ソケット通信に関するシステムコールと通信の仕組み
14.3 マルチクライアントへの対応
第14章の章末問題
第15章 スレッド
15.1 基本的なスレッドの使い方
15.2 mutexを用いたスレッド間の排他制御
第15章の章末問題
第16章 おわりに
16.1 そのほかのシステムコール
16.2 演習を終えたあとに
参考文献
索引