linux ¶¯Ì¬¼ÓÔØ ¶¯Ì¬Á´½Ó¿â
¶¯Ì¬¿âµÄÏÔʽµ÷ÓÃ
ÏÔʽµ÷Óõĺ¬ÒåÊÇ´úÂë³öÏÖ¿âÎļþÃû£¬Óû§ÐèÒª×Ô¼ºÈ¥
´ò¿ªºÍ¹ÜÀí¿âÎļþ¡£ÆäÒªµãΪ:
¢Å°Ñdlfcn.hϵͳͷÎļþ°üº¬½øÀ´
¢ÆÓÃdlopenº¯Êý´ò¿ª¿âÎļþ£¬²¢Ö¸¶¨´ò¿ª·½Ê½
dllopeµÄµÄµÚÒ»¸ö²ÎÊýΪ¹²Ïí¿âµÄÃû³Æ£¬½«»áÔÚÏÂÃæÎ»ÖòéÕÒÖ¸¶¨µÄ¹²Ïí¿â¡£
¢Ù»·¾³±äÁ¿LD_LIBRARY_PATHÁгöµÄÓ÷ֺżä¸ôµÄËùÓÐĿ¼¡£
¢ÚÎļþ/etc/ld.so.cacheÖÐÕÒµ½µÄ¿âµÄÁÐ±í£¬ÓÉldconfigÃüÁîˢС£
¢ÛĿ¼usr/lib¡£
¢ÜĿ¼/lib¡£
¢Ýµ±Ç°Ä¿Â¼¡£
µÚ¶þ¸ö²ÎÊýΪ´ò¿ª¹²Ïí¿âµÄ·½Ê½¡£ÓÐÁ½¸öȡֵ
¢ÙRTLD_NOW£º½«¹²Ïí¿âÖеÄËùÓк¯Êý¼ÓÔØµ½ÄÚ´æ
¢ÚRTLD_LAZY£º»áÍÆºó¹²Ïí¿âÖеĺ¯ÊýµÄ¼ÓÔØ²Ù×÷£¬Ö±µ½µ÷ÓÃdlsym()ʱ·½¼ÓÔØÄ³º¯Êý
¢ÇÓÃdlerror()º¯Êý²âÊÔÊÇ·ñ´ò¿ª³É¹¦£¬²¢½øÐдíÎó´¦Àí;
¢ÈÓÃdlsym»ñµÃº¯ÊýµØÖ·,´æ·ÅÔÚÒ»¸öº¯ÊýÖ¸ÕëÖÐ
¢ÉÓûñµÃµÄº¯ÊýÖ¸Õë½øÐк¯Êýµ÷Óá£
¢Ê³ÌÐò½áÊøÊ±ÓÃdlclose¹Ø±Õ´ò¿ªµÄ¶¯Ì¬¿â£¬·ÀÖ¹×ÊԴй¶¡£
¢ËÓÃldconfig¹¤¾ß°Ñ¶¯Ì¬¿âµÄ·¾¶¼Óµ½ÏµÍ³¿âÁбíÖÐ
1¡¢±àд²âÊÔÎļþ
//main.c ²âÊÔ¶¯Ì¬¿âÏÔʽµ÷ÓõijÌÐò
#include<dlfcn.h> //ÓÃÓÚ¶¯Ì¬¿â¹ÜÀíµÄϵͳͷÎļþ
#include "myalib.h" //Òª°Ñº¯ÊýµÄÍ·Îļþ°üº¬½øÀ´£¬·ñÔò±àÒëʱ»á±¨´í
int main(int argc,char* argv[])
{
//ÉùÃ÷¶ÔÓ¦µÄº¯ÊýµÄº¯ÊýÖ¸Õë
void (*pTest)();
//¼ÓÔØ¶¯Ì¬¿â
void *pdlHandle = dlopen("libtest.so", RTLD_LAZY);
//´íÎó´¦Àí
if(pdlHandle == NULL ) {
printf("Failed load library\n");
return -1;
}
char* pszErr = dlerror();
if(pszErr != NULL)
{
printf("%s\n", pszErr);
return -1;
&nbs
Ïà¹ØÎĵµ£º
1.ΪʲôҪ±àÒëLinux ÄÚºË
¡¡¡¡ÖÚËùÖÜÖª,LinuxÊÇ¿ª·ÅÔ´ÂëµÄ²Ù×÷ϵͳ,¿ª·ÅÔ´ÂëÈí¼þ´ø¸øÎÒÃÇÕâ¼ÆËã»úˮƽÏà¶ÔÂäºóµÄÈËȺµÄ×î´óºÃ´¦,¾ÍÊÇ¿ÉÒÔ¿ìËÙѧϰÊÀ½ç¸ßˮƽµÄ³ÌÐò(Ìåϵ½á¹¹¼°±à³Ì·½·¨µÈµÈ),´Ó¶ø¿ìËÙÌá¸ß×ÔÉíˮƽ¡£È»¶øÕâ±¾Éí£¬Ò²Ê¹¶àÊý¿ª·ÅÔ´ÂëÈí¼þÔÚ±àÂëÒ×ÓÃÐÔ¡¢Õë¶ÔÐÔ·½Ãæ±È²»ÉÏMicrosoftµÈרҵÈí¼þ¹«Ë¾µÄ²úÆ·¡£Ê¹Óÿª ......
sock_rawÔʼÌ×½Ó×Ö±à³Ì¿ÉÒÔ½ÓÊÕµ½±¾»úÍø¿¨ÉϵÄÊý¾ÝÖ¡»òÕßÊý¾Ý°ü,¶ÔÓë¼àÌýÍøÂçµÄÁ÷Á¿ºÍ·ÖÎöÊǺÜÓÐ×÷ÓõÄ.Ò»¹²¿ÉÒÔÓÐ3ÖÖ·½Ê½´´½¨ÕâÖÖsocket
1.socket(AF_INET, SOCK_RAW, IPPROTO_TCP|IPPROTO_UDP|IPPROTO_ICMP)·¢ËͽÓÊÕipÊý¾Ý°ü
2.socket(PF_PACKET, SOCK_RAW, htons(ETH_P_IP|ETH_P_ARP|ETH_P_ALL))·¢ËͽÓÊÕÒÔÌ« ......
ÔÚLinuxÏÂJdkµÄ°²×°ºÍJava»·¾³±äÁ¿µÄÉèÖÃ
ÔÚLinuxÏÂJdkµÄ°²×°ºÍJava»·¾³±äÁ¿µÄÉèÖÃ
1¡¢µ½www.sun.comÏÂÔØ×îа汾µÄj2sdk for linux
2¡¢°²×°jdk1.4.2 for linux,ÒÔÏÂÊÇÔÚRedhat Linux 9ÏÂΪÀý£º
ÒÔrootÉí·ÝµÇ¼
(1)´ò¿ªÒ»¸öÖÕ¶Ë
(2)ÊäÈëÃüÁîls -l ²é¿´°²×°ÎļþµÄȨÏÞ
......
umask()º¯Êý£º´Ëº¯ÊýµÄÖ÷Òª×÷ÓÃÊÇÔÚ´´½¨ÎļþʱÉèÖûòÕ߯Á±ÎµôÎļþµÄһЩȨÏÞ¡£Ò»°ãÓëopen()º¯ÊýÅäºÏʹÓá£openº¯ÊýÔÐÍ£º
#include<sys/types.h>
#include<sys/stat.h>
#include<fcntl.h>
int open( const char * pathname, int flags);
int open( const char ......
Ëæ×ÅLinuxÓ¦ÓõÄÀ©Õ¹Ðí¶àÅóÓÑ¿ªÊ¼½Ó´¥Linux£¬¸ù¾ÝѧϰWindwosµÄ¾ÑéÍùÍùÓÐһЩãȻµÄ¸Ð¾õ£º²»Öª´ÓºÎ´¦¿ªÊ¼Ñ§Æð¡£ÕâÀï½éÉÜѧϰLinuxµÄһЩ½¨Òé¡£
Ò»¡¢´Ó»ù´¡¿ªÊ¼£º ³£³£ÓÐЩÅóÓÑÔÚLinuxÂÛ̳ÎÊһЩÎÊÌ⣬²»¹ý£¬ÆäÖдó¶àÊýµÄÎÊÌâ¶¼ÊǺܻù´¡µÄ¡£ÀýÈ磺ΪʲôÎÒʹÓÃÒ»¸öÃüÁîµÄʱºò£¬ÏµÍ³¸æËßÎÒÕÒ²»µ½¸ÃĿ¼£¬ÎÒÒªÈçºÎÏÞÖÆÊ¹Ó ......