main.c
//³õʼ»¯¶ÓÁÐ
void InitQueue(LiQueue *q)
{
q=(LiQueue*)malloc(sizeof(LiQueue));
q->front=q->rear=NULL;
}
//ÅжÏÊÇ·ñΪ¿Õ
int QueueEmpty(LiQueue *q)
{
if(q->rear==NULL)
{
return 1;
}
else
{
return 0;
}
}
//ÊÍ·Å
void ClearQueue(LiQueue *q)
{
QNode *p=q->front,*r;
if(p!=NULL)
{
r=p->next;
while(r!=NULL)
{
free(p);
p=r;
r=p->next;
}
}
free(q);
}
//ʵÏÖ¶ÓÁеÄÈë¶Ó
void enQueue(LiQueue *q,struct TCPMASSAGE stTcpSendBuff)
{
//·â×°½áµã
QNode *s;
s=(QNode*)malloc(sizeof(QNode));
memcpy(&s->data , &stTcpSendBuff , sizeof(stTcpSendBuff));
//s->data =e;
s->next=NULL;
if(q->rear==NULL)
{
q->front =s;
q->rear =s;
......
main.c
//³õʼ»¯¶ÓÁÐ
void InitQueue(LiQueue *q)
{
q=(LiQueue*)malloc(sizeof(LiQueue));
q->front=q->rear=NULL;
}
//ÅжÏÊÇ·ñΪ¿Õ
int QueueEmpty(LiQueue *q)
{
if(q->rear==NULL)
{
return 1;
}
else
{
return 0;
}
}
//ÊÍ·Å
void ClearQueue(LiQueue *q)
{
QNode *p=q->front,*r;
if(p!=NULL)
{
r=p->next;
while(r!=NULL)
{
free(p);
p=r;
r=p->next;
}
}
free(q);
}
//ʵÏÖ¶ÓÁеÄÈë¶Ó
void enQueue(LiQueue *q,struct TCPMASSAGE stTcpSendBuff)
{
//·â×°½áµã
QNode *s;
s=(QNode*)malloc(sizeof(QNode));
memcpy(&s->data , &stTcpSendBuff , sizeof(stTcpSendBuff));
//s->data =e;
s->next=NULL;
if(q->rear==NULL)
{
q->front =s;
q->rear =s;
......
˵ʵ»°£¬ÐźÅÊÇÎÒÌÖÑáµÄ¶«Î÷£¬ÔÚÎÒЩµÄ´úÂëÖУ¬ÎÒ¶¼ÏëÓÃ×î¼òµ¥µÄ°ì·¨À´´¦ÀíËü£¬ÏÖÔÚÓöµ½¶àÏß³ÌÖÐÐźŵĴ¦Àí£¬APUEÖеÄ˵·¨Ò²¿´µÃ²»ÊǺܶ®£¬CSDNÖÐһλÅóÓÑÓÐÈçϵÄ×ܽᣬÏȼÇÔÚÕâÀï¡£
1. ĬÈÏÇé¿öÏ£¬ÐźŽ«ÓÉÖ÷½ø³Ì½ÓÊÕ´¦Àí£¬¾ÍËãÐźŴ¦Àíº¯ÊýÊÇÓÉ×ÓÏß³Ì×¢²áµÄ
2. ÿ¸öÏ߳̾ùÓÐ×Ô¼ºµÄÐÅºÅÆÁ±Î×Ö£¬¿ÉÒÔʹÓÃsigprocmaskº¯ÊýÀ´ÆÁ±Îij¸öÏ̶߳ԸÃÐźŵÄÏìÓ¦´¦Àí£¬½öÁôÏÂÐèÒª´¦Àí¸ÃÐźŵÄÏß³ÌÀ´´¦ÀíÖ¸¶¨µÄÐźš£
3. ¶Ôij¸öÐźŴ¦Àíº¯Êý£¬ÒÔ³ÌÐòÖ´ÐÐʱ×îºóÒ»´Î×¢²áµÄ´¦Àíº¯ÊýΪ׼£¬¼´ÔÚËùÓеÄÏß³ÌÀͬһ¸öÐźÅÔÚÈκÎÏß³ÌÀï¶Ô¸ÃÐźŵĴ¦ÀíÒ»¶¨Ïàͬ
4. ¿ÉÒÔʹÓÃpthread_kill¶ÔÖ¸¶¨µÄÏ̷߳¢ËÍÐźÅ
APUEµÄ˵·¨:ÿ¸öÏ̶߳¼ÓÐ×Ô¼ºµÄÐÅºÅÆÁ±Î×Ö,µ«ÊÇÐźŵĴ¦ÀíÊǽø³ÌÖÐËùÓеÄÏ̹߳²ÏíµÄ,
ÕâÒâζמ¡¹Üµ¥¸öÏ߳̿ÉÒÔ×èֹijЩÐźÅ,µ«µ±Ïß³ÌÐÞ¸ÄÁËÓëij¸öÐźÅÏà¹ØµÄ´¦ÀíÐÐΪºó,Ëù
ÓеÄÏ̶߳¼¹²ÏíÕâ¸ö´¦ÀíÐÐΪµÄ¸Ä±ä¡£ÕâÑùÈç¹ûÒ»¸öÏß³ÌÑ¡ÔñºöÂÔij¸öÐźţ¬¶øÆäËûÏ߳̿É
ÒÔ»Ö¸´ÐźŵÄĬÈÏ´¦ÀíÐÐΪ£¬»òÕßΪÐźÅÉèÖÃÒ»¸öеĴ¦Àí³ÌÐò£¬´Ó¶ø¿ÉÒÔ³·ÏúÉÏÊöÏ̵߳Ä
ÐźÅÑ¡Ôñ¡£
½ø³ÌÖеÄÐźÅÊÇË͵½µ¥¸öÏ̵߳ģ¬Èç¹ûÐźÅÓëÓ²¼þ¹ÊÕÏ»òÕß¼ÆÊ±Æ÷³¬Ê±Óйأ¬¸ÃÐͺžͱ»·¢
Ë͵½ÒýÆð¸ÃʼþµÄÏß³ÌÖÐ ......
½ñÌì×°ÁËÒ»ÌìµÄLinuxϵͳ£¬ÓëÆä˵°²×°»¹²»Èç˵ÊÇÏÂÔØÁËÒ»Ì죬ÏȺó×°ÁËfedora core 4£¬fedora core 6£¬×îºó×°fedora core 8ÖÕÓÚ¿ÉÒÔÓÃÁË£¬Ã¿¸ö¶¼ÊÇ3G¶à£¬ÒòΪÔÚѧУµÄ¹¤×÷ÊÒ£¬ËùÒÔÏÂÔØËÙ¶ÈÆ½¾ù¿ÉÒÔ´ïµ½1.9M²»µ½£¬Õâ¿ÉÊÇÏÞËٵ쬾ÍËãÕâÑùÎҵĵçÄÔÒ²ÒòΪÏÂÔØËÙ¶ÈÌ«¿ìËÀÁËN»ØÁË£¬¶¼ÊÇÇ¿ÖÆPowerµÄ£¬ÕæµÃ×°µÃÓеãÓôÃÆ°¡£¬×°FC4ÊÇÒòΪÂòµÄ¡¶Äñ¸çµÄ˽·¿²Ë¡·ÓõÄÊÇÕâ¸öLinuxϵͳ£¬µ«Õâ±¾ÊéËäÈ»Êǵڶþ°æÁË£¬µ«Àý×ÓºÃÏñ»¹ÊǵÚÒ»°æµÄ£¬µÚÒ»°æµÄ³öÊéʱ¼äºÃÏñ±ÈÎÒÂòµÄ±¾±¾ÄÇʱºò»¹Ô磬ËùÒÔ¶ÔÎÒµÄÏÔ¿¨²»Ö§³Ö£¬ËäÈ»³É¹¦°²×°ÍêÁË£¬µ«ÖØÆôºóû°ì·¨ÏÔʾ£¬ºóÀ´¾ÍÓÃÁËFC6£¬µ«Õâ¸öÔÚ°²×°µÄ¹ý³ÌÖÐÖ±½Ó¸øÎÒºÚÆÁÁË£¬ÎÒº¹£¬ÐÁÐÁ¿à¿àÏÂÁ˰ëÌ죫ËÀÁËN»Ø£¬¾ÓÈ»ÕâÑù£¬¿ÉÄÜÒ²ÊǶÔÎҵı¾±¾µÄÓ²¼þ²»Ö§³Ö°Ñ£¬ËùÒÔÎÒÕâÀï¸æ½ë´ó¼Ò£ºÈç¹û´ó¼ÒҪѧϰLinuxµÄ»°£¬²»Òª°Ñ¹ýʱµÄµçÄÔ¸øÈÓµôÁË£¬Õâ¸ö×÷ΪѧϰLinuxµÄÁ·Ï°»ú×îºÃ²»¹ýÁË
×îºó±§×ÅÊÔÊÔ¿´µÄÐÄÇé×°11Ô¸ÕÍÆ³öÀ´µÄFC8£¬Ï£ÍûÄÜÖ§³ÖÎҵı¾±¾µÄÓ²¼þÅäÖã¬ÖÕÓÚ¹¦·ò²»¸ºÓÐÐÄÈË£¬¿ÉÒÔÓÃÆðÀ´ÁË£¬ËäÈ»ÔÚFC4ºÍFC6µÄ»ù´¡ÉϸĽøÁ˺ܶණÎ÷£¬ºÍÊéµÄÄÚÈÝÓÐЩ²î±ð£¬µ«¹ØÏµÓ¦¸Ã²»´ó£¬²»¶®µÄ¿ÉÒÔ½Ó´¥baidu»ògoogle£¬ÉõÖÁ½áºÏÁ½ÕßµÄbaigoogledu¡£ÏÂÃæ½²Ò»ÏÂÎҵݲװ²½Ö蹩´ó¼Ò²Î¿¼ ......
Linuxϲ鿴֧³ÖµÄÐźÅÁбí:
~$ kill -l
1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL
5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE
9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR2
13) SIGPIPE 14) SIGALRM 15) SIGTERM 17) SIGCHLD
18) SIGCONT 19) SIGSTOP 20) SIGTSTP 21) SIGTTIN
22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ
26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO
30) SIGPWR 31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1
36) SIGRTMIN+2 37) SIGRTMIN+3 38) SIGRTMIN+4 39) SIGRTMIN+5
40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8 43) SIGRTMIN+9
44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13
48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13
52) SIGRTMAX-12 53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9
56) SIGRTMAX-8 57) SIGRTMAX-7 58) SIGRTMAX-6 59) SIGRTMAX-5
60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2 63) SIGRTMAX-1
64) SIGRTMAX
ÐźżòҪ˵Ã÷£º
SIGHUP ÖÕÖ¹½ø³Ì ÖÕ¶ËÏß·¹Ò¶Ï
SIGINT ÖÕ ......
cronÊÇÒ»¸ölinuxÏµĶ¨Ê±Ö´Ðй¤¾ß£¬¿ÉÒÔÔÚÎÞÐèÈ˹¤¸ÉÔ¤µÄÇé¿öÏÂÔËÐÐ×÷Òµ¡£ÓÉÓÚCron ÊÇLinuxµÄÄÚÖ÷þÎñ£¬µ«Ëü²»×Ô¶¯ÆðÀ´£¬¿ÉÒÔÓÃÒÔÏµķ½·¨Æô¶¯¡¢¹Ø±ÕÕâ¸ö·þÎñ£º
¡¡¡¡/sbin/service crond start //Æô¶¯·þÎñ
¡¡¡¡/sbin/service crond stop //¹Ø±Õ·þÎñ
¡¡¡¡/sbin/service crond restart //ÖØÆô·þÎñ
¡¡¡¡/sbin/service crond reload //ÖØÐÂÔØÈëÅäÖÃ
¡¡¡¡ÄãÒ²¿ÉÒÔ½«Õâ¸ö·þÎñÔÚϵͳÆô¶¯µÄʱºò×Ô¶¯Æô¶¯£º
¡¡¡¡ÔÚ/etc/rc.d/rc.localÕâ¸ö½Å±¾µÄĩβ¼ÓÉÏ£º
¡¡¡¡/sbin/service crond start
¡¡¡¡ÏÖÔÚCronÕâ¸ö·þÎñÒѾÔÚ½ø³ÌÀïÃæÁË£¬ÎÒÃǾͿÉÒÔÓÃÕâ¸ö·þÎñÁË£¬Cron·þÎñÌṩÒÔϼ¸ÖÖ½Ó¿Ú¹©´ó¼ÒʹÓãº
¡¡¡¡1.Ö±½ÓÓÃcrontabÃüÁî±à¼
¡¡¡¡cron·þÎñÌṩcrontabÃüÁîÀ´É趨cron·þÎñµÄ£¬ÒÔÏÂÊÇÕâ¸öÃüÁîµÄһЩ²ÎÊýÓë˵Ã÷£º
¡¡¡¡crontab -u //É趨ij¸öÓû§µÄcron·þÎñ£¬Ò»°ãrootÓû§ÔÚÖ´ÐÐÕâ¸öÃüÁîµÄʱºòÐèÒª´Ë²ÎÊý
¡¡¡¡crontab -l //Áгöij¸öÓû§cron·þÎñµÄÏêϸÄÚÈÝ
¡¡¡¡crontab -r //ɾ³ýû¸öÓû§µÄcron·þÎñ
¡¡¡¡crontab -e //±à¼Ä³¸öÓû§µÄcron·þÎñ
¡¡¡¡±ÈÈç˵root²é¿´×Ô¼ºµÄcronÉèÖãºcrontab -u root -l
¡¡¡¡ÔÙÀýÈ磬rootÏëɾ³ýfredµÄcronÉèÖãºcrontab -u fred -r
¡¡¡¡ÔÚ±à¼cr ......
LinuxϼӹÒÎļþϵͳµÄС½á
ѧϰ²Ù×÷ϵͳʱÎÒÃǶ¼Á˽⵽ÎļþϵͳÊDzÙ×÷ϵͳµÄÖØÒª×é³É²¿·ÖÖ®Ò»¡£ÎļþϵͳÓкܶàÖÖÀàÐÍ£¬±È
windowsµÄfat¡¢fat32£»LinuxµÄext¡¢ext2»òext3£»FreeBSDµÄufsµÈµÈ¡£ÔÚʹÓÃLinuxµÄ¹ý³Ì£¬Ò²³£³£Linux
²Ù×÷ϵͳʹÓÃÐéÄâÎļþϵͳVFS£¬Í¨¹ýVFS¿ÉÒÔÖ±½Ó´æÈ¡ÆäËüÒѱ»ÄÚºËÖ§³ÖµÄ¸÷ÖÖÎļþϵͳ£¬ÓÃÆðÀ´¾ÍÏñÊÇÔÚÆÕͨµÄ
LinuxµÄextϵÁÐÎļþϵͳһÑù¡£ÔçÆÚµÄLinuxÄÚÖÃÖ§³ÖµÄÎļþϵͳ²»¶à£¬×Ô kernel 2.0.x Æð²¢Ö§³Öµ½ VFAT £¬ÒÔºóÖð
½¥Ôö¼Ó£¬µ½Ä¿Ç°¿ÉÒÔ˵¡¡¾ö´ó¶àÊýµÄÎļþϵͳ¶¼ÓÐÁËÖ§³Ö¡£Ö»ÊÇÓÐһЩÈçNTFSÐèÒªÖØÐ±àÒëÄں˲ÅÄÜÖ§³Ö¡£
LinuxÔÚÆô¶¯¹ý³ÌÖУ¬»á°´ÕÕ/etc/fstabÖеÄÉèÖ㬰Ѹ÷¸ö·ÖÇøÉϵÄÎļþϵͳ¼Ó¹Òµ½¶ÔÓ¦µ½¼ÓÔØµãÉÏÈ¥¡£LinuxÖÁÉÙÐèÒªÁ½¸ö·ÖÇø²ÅÄÜÆô¶¯£ºÒ»¸öÊǸù·ÖÇø/£¬ÁíÒ»¸öÊǽ»»»·ÖÇø£¬Èç¹ûÔÚÆô¶¯Ê±¸ù·ÖÇø¼ÓÔØÊ§°Ü£¬Linux¾Í²»ÄÜÍê³ÉÆô¶¯¡£Èç¹û½»»»·ÖÇø¼ÓÔØÊ§°Ü£¬Linux¾Í²»ÄÜÈÔÄÜÆô¶¯£¬ÔÚÄÚ´æ²»¹»µÄÇé¿öÏÂËٶȾͻáÊܴܺóµÄÓ°Ïì¡£¸ù·ÖÇøµÄÎļþϵͳÀàÐÍͨ³£ÊÇext¡¢ext2»òext3£¬µ«Ò²¿ÉÒÔÊÇÆäËüµÄһЩÎļþϵͳ¡£
³ýÁ˼ÓÔØÁËLinuxËù±ØÐèµÄÎļþϵͳÍ⣬LinuxµÄÓû§»¹¾³£ÐèҪʹÓÃÆäËüµÄ¸÷ÖÖÎļþϵͳ£¬ÌرðÊÇÔÚһ̨»úÆ÷ÉÏͬʱ°²×°¶à¸ö²Ù×÷ϵͳµÄʱº ......