Unix Programming Frequently Asked Questions 日本語訳
このFAQについて
1 プロセス制御
1.1 新しいプロセスの生成: fork()
1.1.1 fork()は何をするのですか?
1.1.2 fork()とvfork()の違いは何ですか?
1.1.3 forkによる子プロセスを終了するときにexitよりも_exitを使うのはなぜですか?
1.2 環境変数
1.2.1 どうすればプログラム内で環境変数の値を取得・設定できますか?
1.2.2 どうすれば全ての環境変数を調べられますか?
1.3 どうすれば一秒未満のsleepができますか?
1.4 粒度の細かいalarm()はどうすれば得られますか?
1.5 どうすれば親プロセスと子プロセスの間で通信できますか?
1.6 どうすればゾンビプロセスができることを防ぐことができますか?
1.6.1 ゾンビプロセスってなんですか?
1.6.2 どうすればゾンビプロセスになることを防げますか?
1.7 プログラムをデーモンとして動かすにはどうすればいいですか?
1.8 どうすればpsのようにシステム中のプロセスを調べられますか?
1.9 どうすればプロセスIDからそれが動いているプログラムかどうか分かりますか?
1.10 system/pclose/waitpidの戻り値は何ですか?
1.11 どうすればプロセスのメモリ使用量を調べられますか?
1.12 どうしてプロセスはメモリサイズが減少しないのですか?
1.13 どうすれば(psで見えるような)プログラムの名前を変更できますか?
1.14 どうすればプロセスの実行ファイルを見つけられますか?
1.14.1 ではどこに設定ファイルをおけばいいでしょうか?
1.15 親プロセスが死んだときSIGHUPをプロセスが受け取らないのはなぜですか?
1.16 どうすればプロセスの子孫を全て殺すことができますか?
2 一般ファイル操作 (パイプとソケットを含む)
2.1 複数のコネクションを扱うにはどうすればいいですか?
2.1.1 select()はどう使うのですか?
2.1.2 poll()はどう使うのですか?
2.1.3 SysV IPCをselectやpollと同時に使えますか?
2.2 コネクションの相手が切断したときどうすればそれが分かりますか?
2.3 ディレクトリを読み出す最も良い方法は何ですか?
2.4 どうすれば他の誰かがファイルをオープンしたことを検出できますか?
2.5 ファイルを「ロック」するにはどうすればいいですか?
2.6 どうすればファイルが他のプロセスによって更新されたことを検出できますか?
2.7 duユーティリティはどのように動作するのですか?
2.8 ファイルのサイズを知るにはどうすればいいですか?
2.9 シェルのようにファイル名中の `~' を展開するにはどうすればいいですか?
2.10 名前つきパイプ(FIFO)を使うにはどうすればいいですか?
2.10.1 そもそも名前つきパイプって何ですか?
2.10.2 名前つきパイプはどうやって作るのですか?
2.10.3 名前つきパイプはどう使いますか?
2.10.4 NFS越しに名前つきパイプを使えますか?
2.10.5 複数のプロセッサが同時にパイプに書き込むことはできますか?
2.10.6 アプリケーション中での名前つきパイプの使用について
3 端末 I/O
3.1 どうすればプログラムに入力をエコーさせなくできますか?
3.2 端末から1文字だけずつ読むにはどうすればいいですか?
3.3 キーが押されたことをチェックするにはどうすればいいですか?
3.4 カーソルを画面中動かすにはどうすればいいですか?
3.5 pttyとは何ですか?
3.6 シリアルポートやモデムを扱う方法
3.6.1 シリアルデバイスの名前と種類
3.6.2 termiosフラグの設定
3.6.2.1 c_iflag
3.6.2.2 c_oflag
3.6.2.3 c_cflag
3.6.2.4 c_lflag
3.6.2.5 c_cc
4 システム情報
4.1 システムのメモリ量を知るにはどうすればいいですか?
4.2 どうすればユーザのパスワードをチェックできますか?
4.2.1 ユーザのパスワードを得るにはどうすればいいですか?
4.2.2 ユーザIDからシャドゥパスワードを得るにはどうすればいいですか?
4.2.3 どうすればユーザのパスワードを検証できますか?
5 その他のプログラミング
5.1 ワイルドカードによる文字列比較はどうすればいいですか?
5.1.1 ファイル名パターンによる文字列比較はどうすればいいですか?
5.1.2 正規表現による文字列比較はどうすればいいですか?
5.2 プログラムからメールを送る最良の方法はなんですか?
5.2.1 簡単な方法: /bin/mail
5.2.2 直接MTAを起動する: /usr/lib/sendmail
5.2.2.1 エンベロープをじかに与える
5.2.2.2 sendmailに受信者を推測させる
6 ツールの利用
6.1 forkした後の子プロセスをデバッグするにはどうすればいいですか?
6.2 他のライブラリから別のライブラリを作成するにはどうすればいいですか?
6.3 共有ライブラリまたはDLLを作成する方法は?
6.4 共有ライブラリ中のオブジェクトを置き換えられますか?
6.5 どうすれば実行中のプログラムからスタックダンプをとれますか?
サンプル集
SIGCHLDの受信
プロセステーブルの読み込み -- SUNOS 4 バージョン
プロセステーブルの読み込み -- SYSV バージョン
プロセステーブルの読み込み -- AIX 4.2 バージョン
popenとpsを用いたプロセステーブルの読み込み
デーモンユーティリティ関数
モデム制御の例
ジョブ制御の例
This document was generated on 16 September 2000 using the
texi2html
translator version 1.52.