Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

linux socketѧϰ±Ê¼Ç£¨µÚÈýÕ£©


  IPµØÖ·ÊÇÒ»¸ö32λµÄ¶þ½øÖÆÊý£¬ËüÓɵã·ÖÊ®½øÖƼǷ¨±íʾ£¬Ã¿Ò»¸öÊ®½øÖÆÊý´ú±íÒ»¸ö8λÎÞ·ûºÅÕûÐÍÊý£¬ËùÒÔ·¶Î§ÔÚ0-255Ö®¼ä¡£
Ò»¸öIPµØÖ··ÖÎªÍøÂçµØÖ·ºÍÖ÷»úµØÖ·£¬ÍøÂçµØÖ·Çø·Ö²»Í¬ÍøÂ磬Ö÷»úµØÖ·Çø·ÖÏàÍ¬ÍøÂçÖв»Í¬Ö÷»ú¡£²»Í¬µÄIPµØÖ·ÀàËûÃǵÄÖ÷»úÍøÂçµØÖ·Ò²ÊDz»¹Ì¶¨µÄ£¬A,B,CÀàµØÖ·¶¨ÒåÁËijһÖ÷»úÌØ¶¨µÄIPµØÖ·£¬DÀàΪ×é²¥µØÖ·£¬EÀàΪ±£Áô½ñºóËùÓ᣾ßÌåµÄ»®·ÖÊÇ£º           ·ÖÀà ×îµÍ ×î¸ß ÍøÂçλ Ö÷»úλ
A 0.0.0.0 127.255.255.255 7 24
B 128.0.0.0 191.255.255.255 14 16
C 192.0.0.0 223.255.255.255 21 8
D 224.0.0.0 239.255.255.255 28 N/A
E 240.0.0.0 247.255.255.255 27 N/A       
ÍøÂçÑÚÂëµÄ×÷ÓÃÔÚÓÚ°ÑÍøÂçµØÖ·´ÓIPµØÖ·ÖÐÌáÈ¡³öÀ´£¬Êµ¼ÊÉÏ´ú±íÍøÂçÑÚÂëµÄIPºÅÓëÄ³Ò»ÌØ¶¨µÄIPµØÖ·½øÐГ°´Î»Ó딡£            ·ÖÀà ×îµÍ ×î¸ß ÍøÂçÑÚÂë
A 0.0.0.0 127.255.255.255 24
B 128.0.0.0 191.255.255.255 16
C 192.0.0.0 223.255.255.255 8
ÒÔÏÂÊǶÔIPµØÖ·½øÐмì²éºÍ·ÖÀàµÄÔ´´úÂë
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
int main(int argc, char **argv)
{
int x;
struct sockaddr_in adr_inet;
int len_inet;
unsigned msb;
char class;
char *netmask;
static struct {
unsigned char ip[4];
} addresses[] = {
{ {
44, 135, 86, 12}}, { {
127, 0, 0, 1}}, { {
172, 16, 23, 95}}, { {
192, 168, 9, 1}},};
for (x = 0; x < 4; ++x) {
memset(&adr_inet, 0, sizeof(adr_inet));
adr_inet.sin_family = AF_INET;
adr_inet.sin_port = htons(9000);
memcpy(&adr_inet.sin_addr.s_addr, addresses[x].ip, 4);
len_inet = sizeof(adr_inet);
msb = *(unsigned char *) &adr_ine


Ïà¹ØÎĵµ£º

LinuxÄں˱àÂëʰ½õ

1.Ò»ÖÖ¶¨Ò庯ÊýÖ¸ÕëµÄ·½·¨
<linux/proc_fs.h>
typedef int (read_proc_t)(char *page, char **start, off_t offset, int count, int *eof, void *data);
read_proc_t *proc_read;
    ÕâÖÖ¶¨Òå·½·¨ÓÐÒ»¸öÓÅÊÆ¾ÍÊÇ£¬¼´Ê¹ÄãûÓп´µ½read_proc_tµÄ¶¨Ò壬ҲÄܹ»Çå³þµÄÖªµÀproc_readÊÇÒ»¸öÖ¸Õ룬ÈçÏÂÃæ ......

LinuxÖеÄÄÚ´æ·ÖÅäºÍÊÍ·ÅÖ®__free_pages()º¯Êý·ÖÎö

  ¼ÇµÃÎÒÃÇÔÚÉÏÆªÎÄÕÂmem_init()·ÖÎöÖÐÌáµ½__free_page()º¯ÊýÂð£¿ÎÒÃÇÏÖÔÚÀ´ÍêÉÆËü¡£ËüµÄµ÷Óùý³ÌÊÇÕâÑùµÄ£ºmem_init()->free_all_bootmem_node():ÎÒÃÇÖªµÀÕâ¸öº¯ÊýÊÇͳ¼ÆÒ»¹²ÊÍ·ÅÁ˶àÉÙ¿ÕÏÐÒ³¡£->free_all_bootmem_core()¾ÍÊÇÔÚÕâ¸öº¯ÊýÀïÃæÏȺó¶à´Îµ÷ÓÃ__free_pages()º¯Êý¡£Ä¿µÄ¾ÍÊÇΪÁËÊÍ·Åÿ¸öÄÚ´ænodeÀïÃæÎ ......

Javaµ÷ÓÃLinuxÃüÁî

Java¿ÉÒÔÖ±½Óµ÷ÓÃLinuxÃüÁÐÎʽÈçÏ£º
 Runtime.getRuntime().exec(command)
 ¾ÙÀý£ºÔËÐÐls,topÃüÁî¿ÉÒÔÕâÑù£º
 Runtime.getRuntime().exec("ls");
 µ«ÊÇÕâÑùÖ´ÐÐʱûÓÐÈκÎÊä³ö£¬Ô­Òò£º 
 µ÷ÓÃRuntime.exec·½·¨½«²úÉúÒ»¸ö±¾µØµÄ½ø³Ì,²¢·µ»ØÒ»¸öProcess×ÓÀàµÄʵÀý£¬
£¨×¢Ò⣺Runtim ......

[ת]Àí½âLinuxµÄÐÔÄÜ

ÏîÄ¿Öг£Óöµ½ÐèÒª¶ÔĿǰÔËÐеÄϵͳ½øÐÐЧÂÊ·ÖÎö£¬»òÅöµ½¿Í»§×ÉѯÈçºÎÓÅ»¯ÏµÍ³µÄЧÂÊÎÊÌâ¡£¸ü¶àµÄÇé¿öÊÇ£¬ÔÚϵͳ³öÏÖÎÊÌâµÄʱºò£¬ÐèÒª·ÖÎöÔ­Òò£¬¶¨Î»ÏµÍ³¹ÊÕÏ»òÆ¿¾±£¬µ±È»£¬×îºÃÊÇ¿ÉÒÔÒ»²¢½â¾ö¹ÊÕÏ¡£µ«Êµ¼ÊÉÏ£¬²Ù×÷ϵͳÓÅ»¯ÊÇÒ»¸ö·Ç³£¸´ÔÓµÄÎÊÌ⣬¿öÇÒlinuxÓÐ×Ô¼ºÒ»Ì×ÓбðÓÚÆäËû²Ù×÷ϵͳ¹ÜÀíµÄ»úÖÆ£¬ÓÉ´Ë»áÒýÆðºÜ¶à²»±ØÒªµÄÎ ......

linux Çý¶¯mmap²Ù×÷


Èý¡¢VMAºÍPAGE½á¹¹ ºÍmmapº¯Êý
 
1.page  Ö÷Òª³ÉÔ±
   atomic_t count; 
//Õâ¸öÒ³µÄÒýÓÃÊý. µ±Õâ¸ö count µôµ½ 0, ÕâÒ³±»·µ»Ø¸ø¿ÕÏÐÁбí.
void *virtual; 
//Èç¹ûÒ³±»Ó³É䣬Ôò±íʾÕâÒ³µÄÄÚºËÐéÄâµØÖ·; ·ñÔò, NULL.
unsigned long flags; 
//ÃèÊöҳ״̬µÄÒ»Ì×λ±êÖ¾. ÕâЩ°üÀ¨ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ