LINUX C Á´±í·â×°
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;
}
else
{
q->rear->next =s;
q->rear =s;
}
}
//³ö¶Óº¯Êý
int deQueue(LiQueue *q,struct TCPMASSAGE stTcpSendBuff)
{
QNode *t;
if(q->rear ==NULL)
{
return 0;
}
if(q->front ==q->rear )//Ö»ÓÐÒ»¸ö½áµã
{
t=q->front;
q->front =NULL;
q->rear =NULL;
}
else
{
t=q->front;
q->front=q->front->next;
}
memcpy(stTcpSendBuff.cTcpBuff,t->data.cTcpBuff,t->data.len);
stTcpSendBuff.len = t->data.len;
free(t);
return 1;
}
/*
//³ö¶Óº¯Êý
int deQueue(LiQueue *q,char *pstbuff,int *lenth)
{
QNode *t;
if(q->rear ==NULL)
{
return 0;
}
if(q->front ==q->rear )//Ö»ÓÐÒ»¸ö½áµã
{
t=q->front;
q->front =NULL;
q->r
Ïà¹ØÎĵµ£º
Ëæ×ÅÓ²¼þ²»¶ÏµÄ·¢Õ¹£¬Î´À´µÄÖÇÄÜÊÖ»ú½«Ô½À´Ô½½Ó½üPCµÄÐÔÄÜ£¬Ò»¸öÇ¿´óµÄÊÖ»ú²Ù×÷ϵͳ½«ÊÇÍÚ¾ò²»¶Ï·ÉÔ¾µÄÊÖ»úÓ²¼þÐÔÄܵĹؼü£¬Ö»ÓÐÇ¿´óµÄ²Ù×÷ϵͳ²ÅÄÜÖ§³Ö¸÷ÖÖ²»¶Ï·¢Õ¹µÄÊÖ»úÓ¦Óã¬ÈçLinuxϵͳ¶ÔjavaµÄÍêÃÀÖ§³ÖÒÔ¼°ÓÅÔ½µÄ¶à½ø³Ìµ÷¶È£¬Ä¦ÍÐÂÞÀºÜÔç¾ÍÍÆ³ö»ùÓÚLinuxϵͳµÄÊÖ»ú£¬Ëæ×ÅGoogleµÄAndroid²Ù×÷ϵͳµÄÍÆ³ö£¬ÁíÒ»¸ö»ùÓÚL ......
o: ±àÒëµÄÄ¿±êÎļþ
a: ¾²Ì¬¿â£¬Æäʵ¾ÍÊǰÑÈô¸ÉoÎļþ´òÁ˸ö°ü
so: ¶¯Ì¬Á´½Ó¿â£¨¹²Ïí¿â£©
lo: ʹÓÃlibtool±àÒë³öµÄÄ¿±êÎļþ£¬Æäʵ¾ÍÊÇÔÚoÎļþÖÐÌí¼ÓÁËһЩÐÅÏ¢
la: ʹÓÃlibtool±àÒë³öµÄ¿âÎļþ£¬ÆäʵÊǸöÎı¾Îļþ£¬¼Ç¼ͬÃû¶¯Ì¬¿âºÍ¾²Ì¬¿âµÄÏà¹ØÐÅÏ¢
1 libtoolµÄ¹¤×÷ÔÀí
libtool ÊÇÒ»¸öͨÓÿâÖ§³Ö½Å±¾£¬½«Ê¹Óà ......
¡ð
¡¢ËµÃ÷
±Ê¼ÇÊÊÓÃÓÚ
Linux
µÄ
2.6.10
ÒÔºóµÄÄںˡ£
±Ê¼ÇÒÔ
Linux
Device
Driver3
ÌṩµÄ
scull
³ÌÐò
(scull
Ŀ¼ÖеÄ
main.c
ºÍ
scull.h)
Ϊ¼Ç¼Ö÷Ïߣ¬²¢ÒÔ¸ÃÇý¶¯³ÌÐòÖеĸ÷ÖÖϵͳµ÷Óúͺ¯Êýµ÷ÓÃÁ÷³ÌΪ¼Ç
¼˳Ðò¡£±ÈÈ磬
module_init( )
ºÍ
module_exit(
)
ΪÏà¶ÔÓ¦µÄÒ»¶Ôϵͳµ÷Óã¬Ò»°ãÊé¼®Öж ......
±¾ÀýÊÇ·ë¹ú½øµÄ ¡¶Ç¶ÈëʽLinux Çý¶¯³ÌÐòÉè¼Æ´ÓÈëÃŵ½¾«Í¨¡·µÄµÚÒ»¸öÀý×Ó
¸Ð¾õÕæÊǺÃÊé Ç¿ÁÒÍÆ¼ö
×¢ÊÍÊÇdeep_pro¼ÓµÄ ×ªÔØÇë×¢Ã÷£¡ÎÒµÄÌØµãÊÇÎIJ»¼Óµã£¡
Õâ¸öÇý¶¯ÊÇÔÚÄÚ´æÖзÖÅäÒ»¸ö256×ֽڵĿռ䣬¹©Óû§Ì¬Ó¦ÓóÌÐò¶Áд¡£
ÏÈÊÇÍ·Îļþ demo.h
#ifndef _DEMO_H_
#define _DEMO_H_
#include <linux/ioct ......
½Ó´¥LinuxÒ²ÊǺܾõÄÊÂÇéÁË£¬²»¹ý×ÔÎҸоõÈ´´ÓÀ´Ã»Óнҿª¹ýËüµÄÕæÃæÉ´¡£´ÓÎÒ¹¤×÷ÒÔÀ´µ½ÏÖÔÚ£¬¼¸ºõ×Ü»áÓõ½linux»òÔÚlinuxϵͳÉϽøÐй¤×÷£¬Ò²Ò»Ö±Ïë°Ñlinux¸ã¶®¡£µ«ÊÇ£¬ÓÉÓÚ×ܸоõLinuxµÄÅÓ´ó£¬Ó¢ÎÄ×ÊÁÏÄÑÒÔÔĶÁ£¬¼ÓÉÏ×ÔÉí·Ç³£µÄÀÁÉ¢£¬Òò´Ë¼¸´Î϶¨¾öÐÄ£¬×îÖÕ»¹ÊDz»ÁËÁËÖ®°É¡£ ......