#!/usr/bin/env python from ctypes import * qsort = CDLL("libc.so.6").qsort qsort.restype = None class CmpRet(c_int): pass cmp_ctype = CFUNCTYPE(CmpRet, POINTER(c_int), POINTER(c_int)) IntArray5 = c_int * 2 ia = IntArray5(5, 1) CMP_EQ = CmpRet(0) def py_cmp_func(a, b): print(a.contents, b.contents) return CMP_EQ cmp_fun = cmp_ctype(py_cmp_func) qsort.argtypes = [IntArray5, c_size_t, c_int, cmp_ctype] qsort(ia, len(ia), sizeof(c_int), cmp_fun)