筑波大学 システム情報系 情報工学域 新城 靖 <yas@cs.tsukuba.ac.jp>
このページは、次の URL にあります。
https://www.coins.tsukuba.ac.jp/~syspro/2024/2024-07-03/crlf.html
あるいは、次のページから手繰っていくこともできます。
https://www.coins.tsukuba.ac.jp/~syspro/2024/
http://www.coins.tsukuba.ac.jp/~yas/
HTTP, finger, SMTP, NNTP など、インターネットで使われている 通信プロトコルの多くでは、行末を表す記号として、 キャリッジ・リターン(carrige return,CR) とライン・フィード(Line feed, LF)の両方が必要であると定められている。 Unix では、通常ライン・フィード(ニュー・ライン、New Line, NL と呼ばれ ることもある)だけが行末の記号として使われる。よって、画面に文字列を表 示し、改行したい場合は、次のようなプログラムが使われる。
printf("Hello,world\n");
しかしながら、インターネットの上のプログラムを作成する時には、次のよう
にしなければならないことが多い。
printf("Hello,world\r\n");
ここで、'\r' がキャリッジ・リターン、'\n' がライン・フィードである。い
ずれも、C言語のソース・プログラム上では2文字に見えるが、Cコンパイラ
により、1文字に変換される。それぞれ、アスキーでは、13(0x0d), 10(0x0a)
である。
規格上は、CR-LF が必要とされているが、実際にプログラムを作る時には、LF だけでも動くことがある。しかし、それはたまたまその特定のサーバのプログ ラムが良くできていて、LF だけでも動くようになっているからである。