.\" This file was generated with po4a. Translate the source file.
.\"
.\"*******************************************************************
+.\"
+.\" Japanese Version Copyright (c) 1997 YOSHINO Takashi
+.\" all rights reserved.
+.\" Translated 1997-01-21, YOSHINO Takashi <yoshino@civil.jcn.nihon-u.ac.jp>
+.\" Updated & Modified 2004-06-06, Yuichi SATO <ysato444@yahoo.co.jp>
+.\" Updated 2006-01-18, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>
+.\" Updated 2012-04-30, Akihiro MOTOKI <amotoki@gmail.com>
+.\"
.TH QSORT 3 2012\-03\-08 "" "Linux Programmer's Manual"
.SH 名前
qsort, qsort_r \- 配列を並べ変える
.ad b
.SH 説明
\fBqsort\fP() 関数は、 \fInmemb\fP 個の大きさ \fIsize\fP の要素をもつ配列を並べ変える。 \fIbase\fP
-引き数は配列の先頭へのポインタである。
+å¼\95ã\81\8dæ\95°ã\81¯é\85\8då\88\97ã\81®å\85\88é ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81\82ã\82\8bã\80\82
.PP
-\fIcompar\fP をポインタとする比較関数によって、 配列の中身は昇順 (値の大きいものほど後に並ぶ順番) に並べられる。
-比較関数の引き数は比較されるふたつのオブジェクトのポインタである。
+\fIcompar\fP ã\82\92ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81¨ã\81\99ã\82\8bæ¯\94è¼\83é\96¢æ\95°ã\81«ã\82\88ã\81£ã\81¦ã\80\81 é\85\8då\88\97ã\81®ä¸èº«ã\81¯æ\98\87é \86 (å\80¤ã\81®å¤§ã\81\8dã\81\84ã\82\82ã\81®ã\81»ã\81©å¾\8cã\81«ä¸¦ã\81¶é \86ç\95ª) ã\81«ä¸¦ã\81¹ã\82\89ã\82\8cã\82\8bã\80\82
+æ¯\94è¼\83é\96¢æ\95°ã\81®å¼\95ã\81\8dæ\95°ã\81¯æ¯\94è¼\83ã\81\95ã\82\8cã\82\8bã\81µã\81\9fã\81¤ã\81®ã\82ªã\83\96ã\82¸ã\82§ã\82¯ã\83\88ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81\82ã\82\8bã\80\82
.PP
比較関数は、第一引き数が第二引き数に対して、 1) 小さい、2) 等しい、3) 大きいのそれぞれに応じて、 1) ゼロより小さい整数、2) ゼロ、3)
ゼロより大きい整数の いずれかを返さなければならない。 二つの要素の比較結果が等しいとき、 並べ変えた後の配列では、これら二つの順序は規定されていない。
.PP
\fBqsort_r\fP() 関数は \fBqsort\fP() と同じだが、比較関数 \fIcompar\fP が第 3 引き数を
-取る点が異なる。ポインタが \fIarg\fP 経由で比較関数に渡される。
+å\8f\96ã\82\8bç\82¹ã\81\8cç\95°ã\81ªã\82\8bã\80\82ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81\8c \fIarg\fP çµ\8cç\94±ã\81§æ¯\94è¼\83é\96¢æ\95°ã\81«æ¸¡ã\81\95ã\82\8cã\82\8bã\80\82
これにより、比較関数は任意の引き数を渡すためにグローバル変数を使う必要がなくなり、
そのため、リエントラント (再入可能) で安全にスレッドで使用できるようになる。
.SH 返り値
static int
cmpstringp(const void *p1, const void *p2)
{
- /* ã\81\93ã\81®é\96¢æ\95°ã\81®å®\9fé\9a\9bã\81®å¼\95ã\81\8dæ\95°ã\81¯ "char å\9e\8bã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\81®ã\83\9dã\82¤ã\83³ã\82¿" だが、
- strcmp(3) の引き数は "char 型へのポインタ" である。
- そこで、以下のようにキャストをしてからポインタの逆参照を行う。*/
+ /* ã\81\93ã\81®é\96¢æ\95°ã\81®å®\9fé\9a\9bã\81®å¼\95ã\81\8dæ\95°ã\81¯ "char å\9e\8bã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼" だが、
+ strcmp(3) の引き数は "char 型へのポインター" である。
+ ã\81\9dã\81\93ã\81§ã\80\81以ä¸\8bã\81®ã\82\88ã\81\86ã\81«ã\82ã\83£ã\82¹ã\83\88ã\82\92ã\81\97ã\81¦ã\81\8bã\82\89ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81®é\80\86å\8f\82ç\85§ã\82\92è¡\8cã\81\86ã\80\82*/
return strcmp(* (char * const *) p1, * (char * const *) p2);
}
int j;
if (argc < 2) {
- fprintf(stderr, "Usage: %s <string>...\en", argv[0]);
- exit(EXIT_FAILURE);
+ fprintf(stderr, "Usage: %s <string>...\en", argv[0]);
+ exit(EXIT_FAILURE);
}
qsort(&argv[1], argc \- 1, sizeof(char *), cmpstringp);
.SH 関連項目
\fBsort\fP(1), \fBalphasort\fP(3), \fBstrcmp\fP(3), \fBversionsort\fP(3)
.SH この文書について
-この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.50 の一部
+この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.78 の一部
である。プロジェクトの説明とバグ報告に関する情報は
http://www.kernel.org/doc/man\-pages/ に書かれている。