/* gcc -o sinus sinus.c fehler.c -ldl */
#include <dlfcn.h>
#include "eighdr.h"

int
main(int argc, char *argv[])
{
    void	*handle;
    double	i, (*sinus)(double);
    const char	*fehlmeld;

    if (argc != 2)
	fehler_meld(FATAL, "Usage: %s biblname", argv[0]);
    if ( (handle = dlopen(argv[1], RTLD_LAZY)) == NULL)
	fehler_meld(FATAL, "Kann Bibliothek '%s' nicht oeffnen: %s", argv[1], dlerror());
    
    sinus = dlsym(handle, "sin");
    if ( (fehlmeld = dlerror()) != NULL)
	fehler_meld(FATAL, "Fehler in Bibliothek '%s': %s", argv[1], fehlmeld);

    for (i=0.0; i<=0.5; i+=0.1) 
	printf("%lf\n", (*sinus)(i));

    dlclose(handle);
    
    exit(0);
} //
