#include <stdio.h>
#include <dlfcn.h>
#include <unistd.h>

#include <security/pam_appl.h>
#include <security/pam_misc.h>

int main(int argc, char **argv)
{
    void *handle;

    handle = dlopen("./pam.so", RTLD_NOW);
    if (handle == NULL) {
	fprintf(stderr, "failed to load pam.so: %s\n", dlerror());
	exit(1);
    }

    /* handle->XXX points to each of the PAM functions */


    if (dlclose(handle)) {
	fprintf(stderr, "failed to unload pam.so: %s\n", dlerror());
	exit(1);
    }

    exit(0);
}