diff --git a/man3/qsort.3 b/man3/qsort.3 index dbee31d81..023617a6e 100644 --- a/man3/qsort.3 +++ b/man3/qsort.3 @@ -27,6 +27,7 @@ .\" .\" Modified 1993-03-29, David Metcalfe .\" Modified 1993-07-24, Rik Faith (faith@cs.unc.edu) +.\" 2006-01-15, mtk, Added example program. .\" .TH QSORT 3 2003-11-15 "" "Linux Programmer's Manual" .SH NAME @@ -61,14 +62,49 @@ SVID 3, POSIX, 4.3BSD, ISO 9899 Library routines suitable for use as the .I compar argument include -.BR strcmp (), +.BR strcmp () +(see below), .BR alphasort (), and .BR versionsort (). .SH EXAMPLE -For an example of use, see the example on the -.BR bsearch (3) -page. +For one example of use, see the example under +.BR bsearch (3). + +The following example program sorts the strings given +in its command-line arguments: +.sp +.nf +#include +#include +#include +#include +#include + +static int +cmpstringp(const void *p1, const void *p2) +{ + /* The arguments to this function are "pointers to + pointers to char", but strcmp() arguments are "pointers + to char", hence the following cast plus dereference */ + + return strcmp(* (char **) p1, * (char **) p2); +} + +int +main(int argc, char *argv[]) +{ + int j; + + assert(argc > 1); + + qsort(&argv[1], argc - 1, sizeof(char *), cmpstringp); + + for (j = 1; j < argc; j++) + puts(argv[j]); + exit(EXIT_SUCCESS); +} +.fi .SH "SEE ALSO" .BR sort (1), .BR alphasort (3),