Linuxソケットプログラミング初版第1刷正誤表初版第1刷正誤表

「Linuxソケットプログラミング」サポートページへ
==================================================================================================================
ページ	行			誤				修正文			備考
-----------------------------------------------------------------------------------------------------------------
xi	18	8.6.2 オンデマンド書込み		8.6.2 非同期書込み

xv	14	14.1.7 まちがいのないC++の仲間の使用	14.1.7 C++のfriendを正しく使う

xvi	20	16.1 働くように許可を与える …… 342	16.1 作業のために許可を与える

xxi	17/18	java.net.DatagramPacket(クラス)		java.net.DatagramPacket(クラス)
		 java.net.InetAddress(クラス)		java.net.InetAddress(クラス)
												# 行頭を揃える

3	12	サービスにはたくさんあって、〜		多種類のサービスはすべて、

4	5-6	〜ステップを追って書いていくが、	〜ステップを追って書いていくので、
		この過程でネットワーク〜できる。	ネットワークプログラムを〜できる。

9	4	基本的なクライアントのアルゴリズム。	基本的なクライアントのアルゴリズム	# 。を削除

10	31	root権限				root特権

11	13	悪いsys/types.hファイル			間違ったsys/types.hファイル

15	21/22	この呼び出しは使い慣れている〜		この呼び出しはファイル記述子(fd)
		ファイル読み出しとほとんど似ている。	のかわりにソケット記述子(sd)を
							使う特別な能力以外は、使い慣れた
							ファイル読み出しとほとんど同じだ。

17	13/14	さらにフラグは何を受けるかや		このフラグによって受けるものを
		コントロールさえ制御する。		より制御できるかフロー制御さえ
							可能にする。

26	表中	クラスAの欄内の横罫線を消去する。

		クラス  アドレス				アドレス範囲、説明
		―――――――――――――――――――――――――――――――――――――
			0.0.0.0から0.255.255.255まで	  (予約済み)
			―――――――――――――――――――――――――――――――――
		A	1.0.0.0から126.255.255.255まで	  各割り当てセグメントゥ
			―――――――――――――――――――――――――――――――――
			127.0.0.0から127.255.255.255まで	  (ループバックゥ…)
		―――――――――――――――――――――――――――――――――――――

32	14	FTPデータポート				主なFTPデータポート

36	29	<len					< len

40	32	Apple Talk				AppleTalk

62	表中	クライアント送信の欄の横罫線を訂正!して下さい。

		クライアント送信		サーバ送信		説明
		―――――――――――――――――――――――――――――――――――――――
		ACK=0 (ack_flag)				連続番号をつける。
					――――――――――――――――――――――――――
					SYN=1 (syn_flag)	仮想接続を…確認する。
		―――――――――――――――――――――――――――――――――――――――

63	表中	クライアントの欄の横罫線を訂正!して下さい。

		クライアント送信		サーバ			説明
		―――――――――――――――――――――――――――――――――――――――
		FIN=1 (fin_flag)	データを伝送する	クライアントが…する。
					――――――――――――――――――――――――――
					データを受信する
		―――――――――――――――――――――――――――――――――――――――
		ACK=1 (fin_flag)	さらに伝送する		サーバ…される。
					――――――――――――――――――――――――――
					さらに受信する
		―――――――――――――――――――――――――――――――――――――――

78	2	sockタイプ				ソケットタイプ(?the socket type)

79	23	sendoto()				sendto()

	26.27	connection()  data()  channel()		connection(SYN)  data(ACK)  channel(FIN)

80	1	tion()					tion(SYN)

99	6	…考える。				…考える。各層は機能性と信頼性を付加
							するが、ネットワークの抽象化と性能を
							下げる。
												# 図5.1の表題の訳抜け。

103	22	を加えている。PCカードを…		を加えている。これはPCMCIAのサポートに
							みられる。PCカードを…
												# 訳抜け

126-127		FILE *clientfp;
			:
			:
			else
			   peror("クライアントFILE");	/* FILEへ変換できない */
												# 上記の126ページの最下行から4行目から127ページの1-10行目までを太字にする。

129	20-21	もくろみを実現するのに〜簡単にできる。	並列のまたは複数のタスクに
							所定の役割があると考えると、
							マルチタスク化は非常に
							強力なのでプログラミングを
							簡単にできる。

134	14行と15行の間の「プロセス」欄の線を消す

		―――――――――――――――――――――――――――――――――――――
		プロセス				スレッド
		―――――――――――――――――――――――――――――――――――――
		子はexit()システム呼び出し…	子はpthread_exit(void* arg)……
						……終了できる。
						――――――――――――――――――――
						共有データがない。子に……
						……、値を返す。
		―――――――――――――――――――――――――――――――――――――

153	2	SIGSTP					SIGTSTP

156	21	他のプロセスがリソースを使う		他のプロセスによるリソースの
		のと排除する(相互排他または		使用を排除する(相互排他
		単純なミューテックス;			すなわちミューテックス;

157	17	パラメータミューテックスは…		mutexパラメータは…

158	16	スレッドの				Pthreadの

160	245	"bye" "ps aux|grep <uername>"							# 左記2つを太字に!

163	1	ステータス変数				status変数

167	8	必要な別の力を				必要となる特別な威力を

169	17	プログラムが走ると、			起動されたプログラムが走ると、

170	5	パイプラインをうまく管理するときに、	パイプラインを上手に管理すると、
		パイプがつねにいっぱいで、		パイプがいつも適当にいっぱいになり、
		接続以外からほとんどのものを		ネットワーク接続からたくさんのものを
		得ることになる。			得ることになる。

175	2	メッセージ送信にsend()を1度呼び出すと、	send()を使ってメッセージを送信して
		メッセージが〜関係しない。		しまうと、メッセージがコンピュータ
							からいつどのようにして出て行くかは
							関係しなくなる。

183	29	8.6.2 オンデマンド書込み		8.6.2 非同期書込み

186	最下行	スロット(0、				スロット(stdinは0、

189	8	(SO_RECVTIMEO)				(SO_RCVTIMEO)

194	9-11	標準ベース、つまり〜プログラムがある。	ローカル/リモートログインのように
							日常的に使う必要のあるその他の
							プログラムもあるでしょう。
							いずれの形式でも、サーバプログラムの
							増大を制御する必要がある。そして
							接続数の制御のためにさらに
							プログラミングが要求される。

196	1	ChildCount-;				ChildCount--;

200	下5行目	>>= delay-1 )				>= delay-1 )

203	11	if ( maxfd < client )			if ( maxfd < client )
		maxfd = client;				    maxfd = client;

208	最下行	timeval型、デフォルトでは1、		timeval構造体型fフォルトでは1バイト

212	3	(整数、				(整数型、

	8	40バイト)。				540バイト)。

217	11	==SIGURG )				== SIGURG )

	13	,&c,sizeof(c));				, &c, sizeof(c));

	25	/*-- SIGIO/SIGURGシグナルを要求する--*/						# 前後の行と行頭を合わせる。

223	25	fprint()のような			fprintf()のような

231	13	別のシステムに移植できる、		別のシステムに移植できる。

	29	==					=
		"a",0};					"a", 0};

266	最下行	[100 ]					[100]

	14-22	(3) マニュアル対ガーベージコレクション
		  Javaは〜
		  :
		  これらの呼び出しと…作成ができる。
												# 上記は註ボックスなので(3)を削除して枠で囲み網掛けにする。

267	23	(4) Java TCPサーバ			(3) Java TCPサーバ

271	5	MultiSocket				MulticastSocket

272	17	---										# 長さを2行上の***の長さに合わせる。

280	1	これでスレッドの拡張で…		Threadの拡張でそのクラスを基にした
		スレッドが作成できる。			スレッドを作ることができる。
		
	4	(String [] args)			(String[] args)

291	15	Booleanを				ブール値を

293	1	(マルチキャスト)は			(マルチキャスト)のクラスは

	13	Scket階層を…、クラスが			Socket階層を…、クラスは

299	20	[100 ];					[100];

310	15	まちがいのないC++の仲間の使用		C++のfriendを正しく使う

	17	frendの使用がある			friendの使用がある

	17	frendディレクティブは			friendディレクティブは

	20	frendディレクティブを			friendディレクティブを

316	27	マネジャー				管理者

317	16	関係者が全員関係すると、		関係者全員と、

336	1	(この場合はproc_res)			(この場合はxdr_proc_res)

342	1	16.1 働くように許可を与える		16.1 作業のために許可を与える

	3-5	共有するためにだいじなのは、		共有するためには、サーバとやりとりを
		サーバと…知ることである。		している相手が敵か見方かを知ることが
							大事である。

344	5	ネットワーク…必要である。		ネットワークプログラムを書くとき
							に覚えなければならない重要な
							ルールがある。

	9	隠れた動機で				良からぬ目的に

	10	から出たり入ったり			を出たり入ったり

	24-25	おろかなことに、…力さえ使われる。	Linuxのような誰でも利用できる
							強力なオペレーティングシステム
							でも不正に使用される恐れがある。

353	21	(…の著者名)				(…の各著者のイニシャル)


357	25	method = SSLv2_server_method();	/* 新しいサーバのメソッドを作成 */
												# 上記は行全体を太字(ボールド字体)にして下さい!

365	10	/proc/dev_mcast				/proc/net/dev_mcast

384	18	(80::94:1)				(2FFF:80::94:1)

391	2	を示す。他の3つのビットは予備になる。	を示す。また1で一時的なアドレスを
							示す。他の3つのビットは予備になる。
										#		訳抜け!です。

397	20	"/ tmp/mysocket") ;			"/tmp/mysocket");


	27-29	if ( inet_aton("127.0.0.1",		if ( inet_aton("127.0.0.1",
		        &addr.sin_addr) = = 0 )		        &addr.sin_addr) == 0 )
		    perror("Addr conversion");		    perror("Addr conversion");

402	19	SOCK_SEOPACKET				SOCK_SEQPACKET

404	19	SOCK_SEOPACKET				SOCK_SEQPACKET

498	37	SOCK_SEOPACKETプロトコルタイプ…402	SOCK_SEQPACKETプロトコルタイプ…402

417	4	addrlen);				addr_len);

	10	addrlen					addr_len

	12	である。				ではない。

418	11/12	パラメータsockfdは			引数sockfdは


420	3	use()					send()

	最下行	(ERROはゼロ)…(ERRORは…)		(SO_ERRORはゼロ)…(SO_ERRORは…)

421	17	("CONNECT");				("接続する");

	26	sockfds [2]);				sockfds[2]);

422	3	プロトコル				protocol

	4	プロトコル				protocol

423	13	パラメータsockfdは			引数sockfdは

	14	バッファ				buffer

425	14	msghds構造体				msghdr構造体

426	33	(int out_fd,int in_fd,off_t...		(int out_fd, int in_fd, off_t...

428	21	引数socketは(原文の誤り)		引数sockfdは

429	1	("send");				("送信する");

431	7	限定したければ、シャットダウン		限定したいなら、このshutdownを使って
		して

435	18	FFF::					FFFF::

437	21	localhostの				ローカルホストの

	28	localhostの				ローカルホストの

	29	名前に有効なバイト数。			nameに有効なバイト数。

440	33	(SOCKET,				(SOL_SOCKET, 	

441	24 	(SOCKET,				(SOL_SOCKET, 	

448	246	waitpid()				waitPID()

450	20	スレッドは別のタスクのである。		スレッドはタスクの種類である。

452	3	呼び出すスレッド			呼び出しスレッド

	14	戻り値のvoid*値。			返すvoid*値。

453	27	pthread_mutex_destroy()呼び出しは	destroy呼び出しは

472	31	bind()かlisten()か…			bind()かconnect()かlisten()かゥ

474	17/18	…パッケージにする。			パッケージにするインターフェース。
		インターフェース

489	26	する。データ変換のために…		する。Object型は、データ変換のために…

498	37	SOCK_SEOPACKETプロトコルタイプ...402	SOCK_SEQPACKET〜


==================================================================================================================

# その他、ソースのコメント文の修正
#(ちょっと笑えるかとも思ったのですが、やはり修正お願いします。)


p.135 リスト7.1
--
/* 子供らしくしなさい */      →  /* 子の処理を行なう */
/* 親らしいことをしなさい */  →  /* 親の処理を行なう */
/* 子の終了を待ちなさい */    →  /* 子の終了を待つ */
--

p.139
--
/* ここに子がくる */         → /* ここに子の処理を書く */
/* ここに親がくる */         → /* ここに親の処理を書く */
--

p.282
--
// いいえ、行列の終りに移動しなさい。  →  // でない場合は行列の終りへ移動する。
// データの処理をしなさい。            →  // データの処理をする。
// 全待機スレッドに伝えなさい。        →  // すべての待機スレッドに伝える。
--

==================================================================================================================
2004-02-17

この頁のあたまに戻る
「Linuxソケットプログラミング」サポートページへ