#include &lt;dlfcn.h&gt;
#include &lt;stdio.h&gt;

int
main(int argc, char *argv[])
{
  char* (*fptr)(char *);
  void *handle = dlopen(&#34;/usr/local/lib/libgcrypt.dylib&#34;, RTLD_LAZY | RTLD_LOCAL);
  if (handle == NULL) {
    printf(&#34;ERROR: %s\n&#34;, dlerror());
  } else {
    *(void **)(&amp;fptr) = dlsym(handle, argv[1]);
    if (fptr == NULL) {
       printf(&#34;SYMBOL NOT FOUND: %s : %s\n&#34;, argv[1], dlerror());
    } else {
       printf(&#34;SYMBOL FOUND: %s %s\n&#34;, argv[1], (*fptr)(NULL));
    }
  }
  return 0;
}
