『Unix環境における高度なプログラミング』は、 W・リチャード・スティーブンスによるコンピュータプログラミングの書籍で、 UNIX系オペレーティングシステムのアプリケーションプログラミングインターフェースについて解説しています。本書では、 C言語を用いたUNIXアプリケーションプログラミングの手法。
本書の初版は、 1992 年にAddison-Wesleyから出版されました。本書は、Unix オペレーティングシステムの 2 つの人気ファミリー、Berkeley Software Distribution (特に 4.3 BSD と 386BSD) と AT&T のUNIX System V (特に SVR4) のプログラミングを扱っています。本書では、単一ファイルディスクリプタに対する操作のためのシステムコール、ファイルディスクリプタを操作するioctlなどの特殊な呼び出し、ファイルとディレクトリに対する操作を扱っています。C標準ライブラリのstdioセクション、および必要に応じてライブラリの他の部分を扱っています。いくつかの章では、プロセス、プロセスグループ、デーモン、プロセス間通信、およびシグナルを制御する API について説明しています。1 つの章は Unix 端末制御に、別の章は擬似端末の概念と、それを基盤とするtermcapやcursesなどのライブラリに特化しています。Stevens は、Unix プログラミングのより具体的な例を示す 3 つの章を追加しました。データベースライブラリの実装、PostScriptプリンタとの通信、およびモデムとの通信です。本書ではネットワークプログラミングについては扱っていません。ネットワークプログラミングについては、スティーブンスの1990年の著書『UNIXネットワークプログラミング』、およびそれに続く3巻からなる『TCP/IP図解』で詳しく解説されています。
スティーブンスは1999年に亡くなり、第2版は未完成のまま残されました。Unix派生システムの普及と技術的な多様化が進み、Linux環境のような互換性の高いシステムが登場するにつれ、スティーブンスの初版のコードと解説は次第に時代遅れになっていきました。スティーブン・A・ラゴは、スティーブンスの未完成のメモをもとに第2版を完成させ、2005年にアディソン・ウェスリー社から出版されました。この第2版では、 FreeBSD、Linux、サン・マイクロシステムズのSolaris、アップルのDarwinのサポートが追加され、POSIXスレッドによるマルチスレッドプログラミングの解説も追加されました。第2版には、デニス・リッチーによる序文と、スコット・アダムスによるUnixをテーマにしたディルバートの漫画が掲載されています。
本書は、文章が優れており、構成も良く、内容も包括的であると広く称賛されている。Linux Journal のレビューでは「心からの推薦」を受けた。[ 1 ]