#include typedef int (*cmpfun)(const void *, const void *); typedef int (*cmpfun_r)(const void *, const void *, cmpfun); void qsort_r(void *base, size_t nel, size_t width, cmpfun_r cmp, cmpfun arg); static int wrapper_cmp(const void *v1, const void *v2, cmpfun cmp) { return cmp(v1, v2); } void qsort(void *base, size_t nel, size_t width, cmpfun cmp) { qsort_r(base, nel, width, wrapper_cmp, cmp); }