メインコンテンツへスキップ

有限会社サイパック

CYPACCYberspace Programming Artists Colony

 

 


書籍

UNIXプログラミングの道具箱


有限会社サイパック 工藤 智行著

技術評論社発行

ISBN: ISBN4-7741-2039-1

発行年: 2004年

2,480円+税

Amazon


まえがきより

本書はLinux、FreeBSD、Mac OS X、Solaris、HP-UXなどのUNIX系OSでソフトウェア開発する方を対象に、UNIX環境の優れたプログラミングツールを紹介し、開発作業の中で活用していただくためのガイドブックとして執筆しました。

UNIX系OSには実に多くの優れたプログラミングツールがあります。ツール多くはいずれもプロフェッショナル向けのツールなので、大規模プロジェクト等で使用すると抜群の生産性を発揮します。一方でプロフェッショナル向きであるがための敷居の高さは否めません。とくにWindowsに代表されるGUIのプログラミング環境に慣れた方には、とりかかりの敷居は多少高いと思われます。この敷居は、ちょっとしたコツが判るとすんなりと乗り越えられるものなのですが、周囲にこのようなコツを伝授してくれる人がいない場合には、意外と出だしでつまづきがちです。

本書では、数多くのプログラミングツールから、GNU Emacs、make、Autoconf、RCS、CVS、CUnit、CppUnit、GDB、DDD、gprof、gcov、man、doxygenを取り上げました。これらの開発ツールを短時間で身につけ、開発現場で活用するまでのノウハウを解説しました。敷居の高さについては、すんなりと乗り越えられるような方法について筆者の体験を元に紹介しました。

現在、LinuxやFreeBSDをはじめとするPC UNIXの普及を背景に、UNIXでのプログラミングの機会や需要は急速に高まっています。また、組み込み用途でこれらのOSを利用するケースも急増しているようです。UNIXのプログラミングではツールを使いこなせるかが、勝負の分かれ目と言って過言ではありません。本書によってUNIXのプログラミングツールをものにし、UNIX上での高い生産性を享受していただきたいと思います。


目次

パート1:道具箱
第1章 道具箱

1.1 UNIXプログラミングと道具

1.2 ソフトウェア開発工程とツール

1.2.1 要求分析

1.2.2 概要設計

1.2.3 詳細設計

1.2.4 テストケースの作成

1.2.5 実装作業とデバック

1.2.6 ドキュメントの作成

1.2.7 バージョン管理

1.3 本書の記法


パート2:統合開発環境 GNU Emacs
第2章 GNU Emacs

1.1 UNIXプログラミングと道具

2.1 GNU Emacs入門

2.1.1 Emacsの特徴

2.1.2 Emacsのさまざまなバージョン

2.1.3 キー表記

2.1.4 起動方法と終了方法

2.1.5 チュートリアル

2.1.6 C-h

2.1.7 バッファリスト

2.1.8 Dired

2.1.9 Shellモード

2.2 .emacsとEmacs Lisp

2.2.1 *scratch*バッファ

2.2.2 バイトコンパイル

2.2.3 load-path

2.2.4 日本語環境の設定

2.2.5 コーディングシステム

2.2.6 端末コーディングシステム/キーボードコーディングシステム

2.2.7 バッファプロセスコーディングシステム

2.2.8 バッファファイルコーディングシステム

2.2.9 選択コーディングシステム

2.3 日本語入力

2.3.1 端末のかな漢字変換機能を使う方法

2.3.2 Emacs Lispを使ってかな漢字変換を実現する方法

2.3.3 SKK

2.3.4 T-Code入力

2.3.5 YC

2.3.6 Tamago 4

2.3.7 Emacs本体にパッチを当てる方法

2.3.8 emcws

2.4 Emacsのプログラム開発機能

2.4.1 ChangeLog

2.4.2 compile

2.4.3 grep

2.4.4 タグテーブル

2.4.5 tags-search、tags-query-replace

2.5 cc-mode

2.5.1 S式、リスト

2.5.2 関数、構造体、クラス、enum定義や宣言

2.5.3 コメント編集用コマンド

2.5.4 プリプロセッサ記述編集用コマンド

2.5.5 インデント制御コマンド

2.5.6 定義済みインデントスタイルの使用

2.5.7 インデントのカスタマイズ

2.5.8 色付け設定

2.6 ドキュメントの表示

2.6.1 info

2.6.2 man


パート3:ビルド
第3章 make

3.1 makeの基本

3.2 複数のソースコード

3.3 仮想ターゲット

3.4 マクロ

3.4.1 特殊マクロ

3.5 拡張子ルール

3.6 拡張子リスト

3.7 その他の文法事項

3.7.1 include

3.7.2 コメント

3.7.3 行の継続

3.7.4 コマンド行の-と@

3.7.5 ::ルール

3.8 makeコマンドオプション

3.9 複数ディレクトリ


パート3:ビルド
第4章 Autoconf

4.1 Autoconf

4.2 Autoconfのインストール

4.3 Autoconfひとめぐり

4.3.1 STEP1: autoscanの実行

4.3.2 STEP2: configure.inの修正

4.3.3 STEP3: Autoconfの実行

4.3.4 STEP4: Makefile.inの修正

4.3.5 STEP5: ./configure ; makeの実行

4.4 設定用ヘッダファイルの自動生成

4.5 configure.in

4.5.1 出力変数

4.5.2 Cプリプロセッサシンボル

4.5.3 汎用のプログラムやファイル検出マクロ

4.5.4 Cコンパイラの特性検出

4.5.5 ライブラリの検出

4.5.6 汎用のライブラリ関数検出マクロ

4.5.7 ライブラリの検出マクロ

4.5.8 ヘッダファイルの検出

4.6 高度な自動検出方法

4.6.1 AC_EGREP_CPP、AC_EGREP_HEADERによる検出

4.6.2 AC_TRY_RUNによる検出

4.6.3 それ以外のチェック

4.7 –with-オプション


パート4:ソースコード管理
第5章 RCS

5.1 RCSのモデル

5.2 RCSひとめぐり

5.2.1 初回のファイル登録

5.2.2 チェックアウト

5.2.3 ファイル編集後のリビジョン登録

5.2.4 ロック解除

5.2.5 作業ファイルの削除

5.3 履歴情報の表示

5.4 RCSキーワード

5.4.1 RCSキーワードの処理抑制

5.5 グループ開発

5.5.1 グループ開発用のディレクトリ構造

5.5.2 ロックしっぱなし問題

5.5.3 掟破りのロックしっぱなし解決法

5.6 Emacs vcモード


パート4:ソースコード管理
第6章 CVS

6.1 CVS

6.2 CVSのインストール

6.3 ソースコードの管理

6.4 CVSの管理モデル

6.5 CVSリポジトリへのアクセス手段

6.6 CVSひとめぐり

6.6.1 EDITOR、CVSEDITOR環境変数

6.6.2 CVSROOT環境変数

6.6.3 cvs init

6.6.4 cvs import

6.6.5 cvs checkout

6.6.6 cvs update

6.6.7 cvs commit

6.7 cvsコマンド

6.7.1 cvs add

6.7.2 cvs delete、cvs remove

6.7.3 cvs release

6.7.4 cvs diff

6.7.5 cvs status

6.7.6 cvs login、cvs logout

6.7.7 cvs tag

6.7.8 cvs log

6.7.9 cvs export

6.7.10 cvs history

6.7.11 cvs annotate

6.7.12 cvs rtag

6.7.13 cvs rdiff

6.8 RCSキーワードとバイナリファイル

6.8.1 RCSキーワード

6.8.2 バイナリファイルの扱い

6.9 編集の自動通知

6.9.1 cvs watch、cvs watchers、cvs edit、cvs unedit、cvs editors

6.10 ブランチ

6.10.1 ブランチの作成

6.10.2 ブランチのチェックアウト

6.10.3 トランク変更内容のブランチへの取り込み

6.10.4 ブランチ変更内容のトランクへの取り込み

6.11 Stickyタグの扱い

6.12 RCSからCVSへのコンバート

6.13 pserverの設定

6.14 Emacs PCL-CVS

6.14.1 *cvs*バッファの表示

6.14.2 ファイルの選択/解除

6.14.3 選択済みのファイルに対するコミット

6.14.4 選択済のファイルの操作

6.14.5 ログやステータスの確認

6.14.6 差分の扱い

6.14.7 *cvs*バッファでのその他の操作


パート5:テスト
第7章 CUnit

7.1 CUnitのインストール

7.2 テスト対象のデザイン

7.3 テストコードの雛型の用意

7.3.1 XML出力

7.3.2 コンソール出力

7.4 テストケースの実装

7.5 本体の実装

7.6 テスト駆動型の開発プロセス


パート5:テスト
第8章 CppUnit

8.1 CppUnitのインストール

8.2 テスト対象のデザイン

8.3 テストコードの雛型の用意

8.4 テストケースの実装

8.5 本体の実装


パート6:デバッグ
第9章 GDB

9.1 GDBひとめぐり

9.1.1 プログラムのコンパイル

9.1.2 GDBの起動と終了

9.1.3 プログラムの実行とソースコードの表示

9.1.4 変数表示

9.1.5 フレーム

9.1.6 ブレークポイントと実行制御

9.2 GDBの開始/終了

9.2.1 GDBのコマンドライン引数

9.2.2 .gdbinit

9.2.3 GDBの終了

9.2.4 デバッグ対象のファイル指定

9.2.5 デバッグ対象プロセスの指定

9.2.6 プログラムの実行と停止

9.2.7 シグナル

9.3 ソースコードの表示

9.3.1 ソースコード表示

9.3.2 ソースコードの検索

9.3.3 ソースコードのパス

9.4 プログラムの実行制御

9.4.1 ステップ実行

9.4.2 継続実行

9.4.3 ブレークポイントの設定

9.4.4 ブレークポイントの制御

9.5 スタックフレーム

9.5.1 バックトレース

9.5.2 フレームの移動、フレーム情報表示

9.6 変数表示、シンボル表示

9.6.1 変数の表示

9.6.2 メモリの表示

9.6.3 ローカル変数、関数の引数情報

9.6.4 自動表示

9.6.5 シンボル情報の表示

9.7 変数の値変更、関数の呼び出し

9.7.1 変数の値変更

9.7.2 関数呼び出し

9.8 機械語レベルのデバッグ

9.8.1 逆アセンブル

9.8.2 機械語レベルのステップ実行

9.8.3 レジスタ値

9.9 GDB内の変数と値

9.9.1 ヒストリ値

9.9.2 コンビニエンス変数

9.10 ユーザ定義コマンドとフック

9.10.1 ユーザ定義コマンド

9.10.2 フック

9.10.3 スクリプト

9.11 リモートデバッグ

9.12 GNU EmacsとGDB

9.12.1 gdb-mode

9.12.2 gdb-modeによるデバッグの実際

9.12.3 gud-mode

9.12.4 gudからGDB以外のデバッガを使う


パート6:デバッグ
第10章 DDD

10.1 DDD

10.2 DDDのインストール

10.2.1 バイナリパッケージ

10.2.2 ソースコードからのコンパイル

10.2.3 ドキュメント

10.3 DDDひとめぐり

10.3.1 DDDの起動

10.3.2 DDDウィンドウ

10.3.3 ソースコードの表示

10.3.4 ブレークポイント

10.3.5 データウィンドウ

10.3.6 プロット表示

10.3.7 gdbコンソールウィンドウ

10.3.8 アセンブラレベルのデバッグ


パート6:デバッグ
第11章 gprof

11.1 gprof

11.2 パフォーマンス改善

11.2.1 バッファリング

11.2.2 コードの最適化

11.2.3 GCCの-O2オプション


パート6:デバッグ
第12章 gcov

12.1 gcov


パート7:ドキュメント
第13章 man

13.1 manのしくみ

13.1.1 日本語のman

13.2 manの使い方

13.2.1 マニュアルのありか

13.3 オンラインドキュメントの書き方

13.3.1 コメント

13.3.2 前文

13.3.3 セクション

13.3.4 文字属性

13.3.5 改行

13.3.6 インデント

13.3.7 特殊文字

13.4 ドキュメントのインストール


パート7:ドキュメント
第14章 doxygen

14.1 doxygen

14.2 doxygenのインストール

14.2.1 doxygenの動作に必要なソフトウェア

14.3 doxygenひとめぐり

14.3.1 STEP1:設定ファイルの作成

14.3.2 STEP2:ドキュメントの生成

14.3.3 STEP3:ソースコードへのコメント追加

14.4 doxygenコマンド

14.4.1 設定ファイルの生成

14.4.2 Doxyfileのアップデート

14.4.3 ドキュメントの生成

14.5 Doxyfile

14.5.1 一般的なオプション

14.5.2 dot関連オプション

14.5.3 HTML出力関連オプション

14.5.4 LaTeX 出力関連オプション

14.5.5 RTF出力関連オプション

14.5.6 man出力関連オプション

14.5.7 XML出力関連オプション

14.6 コメントの書き方

14.6.1 詳細記述

14.6.2 概要記述

14.6.3 コメントの後置

14.7 スペシャルコマンド, HTML コマンド

14.7.1 視覚的修飾

14.7.2 セクション

14.7.3 TeX数式の埋め込み

14.7.4 構造指示子

14.7.5 リンク

14.7.6 外部ファイルのインクルード

14.8 複数言語ドキュメント

先頭に戻る


Copyright ©2022 有限会社サイパック CYPAC All Rights Reserved.