Click on ptrs2fncs_argcv.c to get source.
/* this example is taken from the Unix qsort man page */
/* added command line arguments to make arrays of settable length
   with random integer residues modulo a settable modulus
*/
#include <stdlib.h>
#include <stdio.h>

int cnt;

#ifdef DEFQSORT
/* qsort declaration (in stdlib.h) */
extern void qsort(void*  A,  /* array */
                  size_t n, /* nr. of elements */
                  size_t s, /* size of each element */
                  int (*comp) /* pointer to comparison function */
                     (const void* ampA_i, /* pointer to array elem */
                      const void* ampA_j  /* pointer to array elem */
                     )
                 );
#endif

static  int intcompare(int *i, int *j)
{
        cnt = cnt+1;
        if (*i < *j)
                return (-1);
        if (*i > *j)
                return (1);
        return (0);
}

int main(int argc, char** argv)
/* run as "a.out 100 25 11", where 100 is the size to be tested,
   and 25 is the range of entries;
   11 is the seed for the random number generator; */
{
  int *array, i, size, mod, seed;

  if (argc < 4)
    {
      fprintf(stderr,
              "Call as \"%s" " <size> <mod> <seed>\"\n",
              argv[0]
             );
      exit(1);
    };

  sscanf(argv[1], "%d", &size); sscanf(argv[2], "%d", &mod);
  array = (int*) calloc(size, sizeof(int));

  sscanf(argv[3], "%d",&seed);
  srand(seed);
  for(i = 0; i < size; i++) array[i] = rand() % mod;

  printf("\nInput array\n");
  for(i=0;i<size;i++) printf("%3d ",array[i]);
  printf("\n");

  qsort(              (void *) array
       ,              (size_t) size
       ,                       sizeof(int)
       ,(int (*)(const void*
                ,const void*)) intcompare
       );

  printf("qsort'ed array after %d" " comparisons\n", cnt);
  for(i = 0; i < size; i++) printf("%3d ", array[i]);
  printf("\nqsort'ed array after %d" " comparisons\n", cnt);

  free(array); return 0;
}/* main */