main.c 913 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <stdlib.h>
  4. #include <uv.h>
  5. #include "plugin.h"
  6. typedef void (*init_plugin_function)();
  7. void mfp_register(const char *name) {
  8. fprintf(stderr, "Registered plugin \"%s\"\n", name);
  9. }
  10. int main(int argc, char **argv) {
  11. if (argc == 1) {
  12. fprintf(stderr, "Usage: %s [plugin1] [plugin2] ...\n", argv[0]);
  13. return 0;
  14. }
  15. uv_lib_t *lib = (uv_lib_t*) malloc(sizeof(uv_lib_t));
  16. while (--argc) {
  17. fprintf(stderr, "Loading %s\n", argv[argc]);
  18. if (uv_dlopen(argv[argc], lib)) {
  19. fprintf(stderr, "Error: %s\n", uv_dlerror(lib));
  20. continue;
  21. }
  22. init_plugin_function init_plugin;
  23. if (uv_dlsym(lib, "initialize", (void **) &init_plugin)) {
  24. fprintf(stderr, "dlsym error: %s\n", uv_dlerror(lib));
  25. continue;
  26. }
  27. init_plugin();
  28. }
  29. return 0;
  30. }