OSDN Git Service

(split) LDP: Update release pages
[linuxjm/LDP_man-pages.git] / release / man3 / memmem.3
index 3888405..757e06f 100644 (file)
@@ -1,5 +1,6 @@
 .\" Copyright 1993 David Metcalfe (david@prism.demon.co.uk)
 .\"
+.\" %%%LICENSE_START(VERBATIM)
 .\" Permission is granted to make and distribute verbatim copies of this
 .\" manual provided the copyright notice and this permission notice are
 .\" preserved on all copies.
 .\"
 .\" Formatted or processed versions of this manual, if unaccompanied by
 .\" the source, must acknowledge the copyright and authors of this work.
+.\" %%%LICENSE_END
 .\"
 .\" References consulted:
 .\"     Linux libc source code
 .\"     386BSD man pages
 .\" Modified Sat Jul 24 18:50:48 1993 by Rik Faith (faith@cs.unc.edu)
 .\" Interchanged 'needle' and 'haystack'; added history, aeb, 980113.
+.\"*******************************************************************
 .\"
-.\" Japanese Version Copyright (c) 1997 HIROFUMI Nishizuka
-.\"    all rights reserved.
-.\" Translated Wed Dec 17 12:11:20 JST 1997
-.\"    by HIROFUMI Nishizuka <nishi@rpts.cl.nec.co.jp>
+.\" This file was generated with po4a. Translate the source file.
 .\"
-.TH MEMMEM 3  2008-12-05 "GNU" "Linux Programmer's Manual"
-.SH Ì¾Á°
-memmem \- Éôʬʸ»úÎó¤Î°ÌÃÖ¤ò¼¨¤¹
-.SH ½ñ¼°
+.\"*******************************************************************
+.TH MEMMEM 3 2008\-12\-05 GNU "Linux Programmer's Manual"
+.SH 名前
+memmem \- 部分文字列の位置を示す
+.SH 書式
 .nf
-.B #define _GNU_SOURCE
-.B #include <string.h>
+\fB#define _GNU_SOURCE\fP         /* feature_test_macros(7) 参照 */
+\fB#include <string.h>\fP
 .sp
-.BI "void *memmem(const void *" haystack ", size_t " haystacklen ,
-.BI "             const void *" needle ", size_t " needlelen  );
+\fBvoid *memmem(const void *\fP\fIhaystack\fP\fB, size_t \fP\fIhaystacklen\fP\fB,\fP
+\fB             const void *\fP\fIneedle\fP\fB, size_t \fP\fIneedlelen\fP\fB);\fP
 .fi
-.SH ÀâÌÀ
-.BR memmem ()
-´Ø¿ô¤Ï¡¢
-\fIhaystacklen\fP ¤ÎÂ礭¤µ¤ò»ý¤Ä¥á¥â¥êÎΰè \fIhaystack\fP ¤ÎÃæ¤Ç
-\fIneedlelen\fP ¤ÎÂ礭¤µ¤ò»ý¤ÄÉôʬʸ»úÎó \fIneedle\fP ¤¬
-ºÇ½é¤Ë¸½¤ì¤ë°ÌÃÖ¤ò¸«¤Ä¤±¤ë¡£
-.SH ÊÖ¤êÃÍ
-.BR memmem ()
-´Ø¿ô¤Ï¡¢Éôʬʸ»úÎó¤Î³«»Ï¤ò»Ø¤¹¥Ý¥¤¥ó¥¿¤òÊÖ¤·¡¢¤â¤·Éôʬʸ»úÎó¤¬
-¸«¤Ä¤«¤é¤Ê¤¤¾ì¹ç¤Ï NULL ¤òÊÖ¤¹¡£
-.SH ½àµò
-¤³¤Î´Ø¿ô¤Ï GNU extension ¤Ç¤¢¤ë¡£
-.SH ¥Ð¥°
-Linux ¤Î¥é¥¤¥Ö¥é¥ê¤Ë´Ø¤·¤Æ¤¤¤¦¤È¡¢ libc 5.0.9 ¤È
-¤½¤ì°ÊÁ°¤Î¤¹¤Ù¤Æ¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¡¢¤³¤Î´Ø¿ô¤Ï²õ¤ì¤Æ¤¤¤ë¡£
-¤½¤ì¤é¤Î¥é¥¤¥Ö¥é¥ê¤Ç¤Ï \fIneedle\fP ¤È \fIhaystack\fP °ú¿ô¤¬
-Æþ¤ìÂؤï¤Ã¤Æ¤ª¤ê¡¢ \fIneedle\fP ¤¬ºÇ½é¤Ë½Ð¸½¤¹¤ëÉôʬ¤ÎºÇ¸å¤ò
-¼¨¤¹¥Ý¥¤¥ó¥¿¤¬ÊÖ¤µ¤ì¤Æ¤¤¤¿¤Î¤Ç¤¢¤ë¡£
+.SH 説明
+\fBmemmem\fP()  関数は、 \fIhaystacklen\fP の大きさを持つメモリ領域 \fIhaystack\fP の中で \fIneedlelen\fP
+の大きさを持つ部分文字列 \fIneedle\fP が 最初に現れる位置を見つける。
+.SH 返り値
+\fBmemmem\fP()  関数は、部分文字列の開始を指すポインタを返し、もし部分文字列が 見つからない場合は NULL を返す。
+.SH 準拠
+この関数は GNU による拡張である。
+.SH バグ
+Linux のライブラリに関していうと、 libc 5.0.9 と それ以前のすべてのバージョンで、この関数は壊れている。 それらのライブラリでは
+\fIneedle\fP と \fIhaystack\fP 引数が 入れ替わっており、 \fIneedle\fP が最初に出現する部分の最後を
+示すポインタが返されていたのである。
 
-¿·µìξÊý¤Î libc ¥é¥¤¥Ö¥é¥ê¤¬¡¢
-\fIneedle\fP ¤¬¶õ¤Î¾ì¹ç (\fIhaystack\fP ¤Î¤«¤ï¤ê¤Ë) \fIhaystack-1\fP\ ¤¬
-ÊÖ¤µ¤ì¤ë¤È¤¤¤¦¥Ð¥°¤ò»ý¤Ã¤Æ¤¤¤ë¡£
-¤½¤·¤Æ¡¢glibc 2.0 ¤Ç¤Ï¤µ¤é¤Ë°­¤¯¤Ê¤Ã¤Æ¤ª¤ê¡¢
-\fIhaystack\fP ¤ÎºÇ¸å¤Î¥Ð¥¤¥È¤Ø¤Î¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£
-¤³¤ì¤Ï glibc 2.1 ¤Ç½¤Àµ¤µ¤ì¤¿¡£
-.SH ´ØÏ¢¹àÌÜ
-.BR strstr (3),
-.BR feature_test_macros (7)
+新旧両方の libc ライブラリが、 \fIneedle\fP が空の場合 (\fIhaystack\fP のかわりに) \fIhaystack\-1\fP\ が
+返されるというバグを持っている。 そして、glibc 2.0 ではさらに悪くなっており、 \fIhaystack\fP の最後のバイトへのポインタを返す。
+これは glibc 2.1 で修正された。
+.SH 関連項目
+\fBstrstr\fP(3)
+.SH この文書について
+この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.52 の一部
+である。プロジェクトの説明とバグ報告に関する情報は
+http://www.kernel.org/doc/man\-pages/ に書かれている。