????3??????????????.so
???????????????????????????????????????dynamic linker??????API???????????API??????????libdl.so?е???????????????????????????<dlfcn.h>?С?
????dlopen()??????????????.so????????????????????????????????????????£?
????void *dlopen(const char *filename?? int flag);
????filename??the dynamic library file named by the null-terminated string??????·??????????·????·???????£?dlopen()????β????????????????????ο?man??
????flag??????????????????????????磺RTLD_LAZY????????????????????????α???????????????PLT????????????RTLD_NOW???????鱻?????????????е??????????????????κ?δ?????????????????????????dlopen?????????????????flag??????????ο?man??
??????????????????????????t?????????????API?????????????????????NULL??
????dlsym()?????????????????????????????????£?
????void *dlsym(void *handle?? const char *symbol);
?????????????handle??dlopen??????????????????symbol???????????????????????‘