linux ÖеÃ×Ô¼ºµÄipµØÖ·´úÂë
DWORD GetLocalAddr(char* interface)
{
struct ifreq ifr;
int fd;
int err;
unsigned long ip;
strcpy(ifr.ifr_name, interface);
fd = socket(AF_INET, SOCK_DGRAM, 0);
err = ioctl(fd, SIOCGIFADDR, &ifr);
if (err)
{
//perror("ioctl");
close(fd);
return 0;
}
close(fd);
memcpy(&ip,ifr.ifr_addr.sa_data + 2,4);
return ip;
}
µ÷ÓÃÈç
DWORD ip=GetLocalAddr("eth0");
Ïà¹ØÎĵµ£º
linuxÈíÖжϻúÖÆ
ÖжϷþÎñ³ÌÐòÍùÍù¶¼ÊÇÔÚCPU¹ØÖжϵÄÌõ¼þÏÂÖ´Ðеģ¬ÒÔ±ÜÃâÖжÏǶÌ×¶øÊ¹¿ØÖƸ´ÔÓ»¯¡£µ«ÊÇCPU¹ØÖжϵÄʱ¼ä²»ÄÜÌ«³¤£¬·ñÔòÈÝÒ×¶ªÊ§ÖжÏÐźš£Îª´Ë£¬ Linux½«ÖжϷþÎñ³ÌÐòÒ»·ÖΪ¶þ£¬¸÷³Æ×÷“Top Half”ºÍ“Bottom Half”¡£Ç°Õßͨ³£¶Ôʱ¼äÒªÇó½ÏΪÑϸñ£¬ ......
LinuxÍøÂçÇý¶¯³ÌÐò±àд(Ò»)
¹¤×÷ÐèҪдÁËÎÒÃǹ«Ë¾Ò»¿éÍø¿¨µÄLinuxÇý¶¯³ÌÐò¡£¾ÀúÒ»¸ö´ÓÎÞµ½ÓеĹý³Ì£¬Éî¸Ð¼¼Êõ½»Á÷µÄÖØÒª¡£Linux×÷ΪÌôս΢Èí¢¶ÏµÄÇ¿ÓÐÁ¦ÎäÆ÷£¬ÈÕÒæÊܵ½´ó¼ÒµÄϲ°®¡£ÕæÏ£ÍûËýÄÜÔÚÖйúѸËٳɳ¤¡£°Ñ³ÌÐòÎĵµÌù³öÀ´£¬Ï£ÍûºÍ´ó¼Ò̽ÌÖLinux¼¼ÊõºÍÓ¦Ó㬴ٽøLinuxÔÚÖйúµÄÆÕ¼°¡£
¡¡¡¡±¾ÎÄ¿ÉËæÒâ×ªÔØ£¬µ«Çë²»ÒªÔ ......
¡¡2.4 ³£ÓõÄϵͳ֧³Ö
¡¡¡¡2.4.1 ÄÚ´æÉêÇëºÍÊÍ·Å
¡¡¡¡include/linux/kernel.hÀïÉùÃ÷ÁËkmalloc()ºÍkfree()¡£ÓÃÓÚÔÚÄÚºËģʽÏÂÉêÇëºÍÊÍ·ÅÄÚ´æ¡£
¡¡¡¡void *kmalloc(unsigned int len,int priority);
¡¡¡¡void kfree(void *__ptr);
¡¡¡¡ÓëÓû§Ä£Ê½ÏµÄmalloc()²»Í¬£¬kmalloc()Éê ......
ÃüÁî
1.
file
×÷Óãº
file ͨ¹ý̽²âÎļþÄÚÈÝÀ´ÅжÏÎļþÀàÐÍ¡£
ʹÓÃfileÃüÁî¿ÉÒÔÖªµÀij¸öÎļþ¾¿¾¹ÊǶþ½øÖÆ(ELF¸ñʽ)µÄ¿ÉÖ´ÐÐÎļþ, »¹ÊÇShell scrīptÎļþ,»òÕßÊÇÆäËüµÄʲô¸ñʽ¡£fileÄÜʶ±ðµÄÎļþÀàÐÍÓÐĿ¼¡¢Shell½Å±¾¡¢Ó¢ÎÄÎı¾¡¢¶þ½øÖÆ¿ÉÖ´ÐÐÎļþ¡¢CÓïÑÔÔ´Îļþ¡¢Îı¾Îļþ¡¢DOSµÄ¿ÉÖ´ÐÐÎļþ¡£ ÐèҪ˵Ã÷µÄÊÇ,fileà ......
IncludeµÄheaderÎļþ,Á¬½áÊý¾Ý¿â£¬ÏµÍ³¶¨Ò壬×ܹ²ÓÐÏÂÁÐÀ´Ô´Ö¸¶¨gccÈ¥ÄÇÕÒ¡£
µ±³õÔÚ±àÒëʱָ¶¨µÄ(ÔÚ~gcc/gcc/collect2.c:locatelib()
дÔÚspecsÄÚµÄ
ºóÀ´ÓÃ-D -I -LÖ¸¶¨µÄ
gcc»·¾³±äÁ¿É趨(±àÒëµÄʱºò)
ld.soµÄ»·¾³±äÁ¿(ÕâÊÇrun timeµÄʱºò£©
Ò»¡¢Í·Îļþ
gcc ÔÚ±àÒëʱÈçºÎȥѰÕÒËùÐèÒªµÄÍ·Îļþ £º
¡ùËùÒÔheader fil ......