/*ͨ¹ýÊó±êÍÏ·ÅÎļþµ½Öƶ¨¿Ø¼þÖУ¬²¢ÅжÏÊÇ·ñΪÎļþ£¬Èç¹ûÊÇ£¬Ôòµ÷ÓÃÎļþ·¢ËÍ·½·¨ChatFrame.SendFile(finalpath);
*/
class TextDropTargetListener implements DropTargetListener
{
CODER Coder = new CODER();
CHAT_FRAME ChatFrame;
/**
Constructs a listener.
@param aTextArea the text area in which to display the
properties of the dropped object.
*/
public TextDropTargetListener(CHAT_FRAME CF)
{
ChatFrame = CF;
}
public void dragEnter(DropTargetDragEvent event)
{
/*
int a = event.getDropAction();
if ((a & DnDConstants.ACTION_COPY) != 0)
textArea.append("ACTION_COPY\n");
if ((a & DnDConstants.ACTION_MOVE) != 0)
textArea.append("ACTION_MOVE\n");
if ((a & DnDConstants.ACTION_LINK) != 0)
textArea.append("ACTION_LINK\n");
if (!isDragAcceptable(event))
{
event.rejectDrag();
return;
}
*/
}
public void dragExit(D ......
/*ͨ¹ýÊó±êÍÏ·ÅÎļþµ½Öƶ¨¿Ø¼þÖУ¬²¢ÅжÏÊÇ·ñΪÎļþ£¬Èç¹ûÊÇ£¬Ôòµ÷ÓÃÎļþ·¢ËÍ·½·¨ChatFrame.SendFile(finalpath);
*/
class TextDropTargetListener implements DropTargetListener
{
CODER Coder = new CODER();
CHAT_FRAME ChatFrame;
/**
Constructs a listener.
@param aTextArea the text area in which to display the
properties of the dropped object.
*/
public TextDropTargetListener(CHAT_FRAME CF)
{
ChatFrame = CF;
}
public void dragEnter(DropTargetDragEvent event)
{
/*
int a = event.getDropAction();
if ((a & DnDConstants.ACTION_COPY) != 0)
textArea.append("ACTION_COPY\n");
if ((a & DnDConstants.ACTION_MOVE) != 0)
textArea.append("ACTION_MOVE\n");
if ((a & DnDConstants.ACTION_LINK) != 0)
textArea.append("ACTION_LINK\n");
if (!isDragAcceptable(event))
{
event.rejectDrag();
return;
}
*/
}
public void dragExit(D ......
¼ò½é
ÕâÆªÎÄÕÂÖ÷Òª¼Ç¼ÎÒÔÚÊÔͼ½â¾öÈçºÎ¾¡¿ÉÄܾ«È·µØÔÚij¸öÌØ¶¨µÄʱ¼ä¼ä¸ôÖ´ÐÐijÏî¾ßÌåÈÎÎñʱµÄ˼·Àú³Ì£¬²¢ÔÚºóÆÚ¶ÔÏà¹ØµÄAPI½øÐеĹéÄɺÍ×ܽᣬÒÔ±¸²Î¿¼¡£
ÎÊÌâÒý³ö
ºÜ¶àʱºò£¬ÎÒÃÇ»áÓÐÀàËÆ“ÿ¸ô¶à³¤Ê±¼äÖ´ÐÐijÏîÈÎÎñ
”µÄÐèÇó£¬Õ§¿´Õâ¸öÎÊÌâ²¢²»Äѽâ¾ö£¬ÊµÔò²¢²»ÈÝÒ×£¬ÓкܶàÒþº¬Ìõ¼þÐèÒª¿¼ÂÇ£¬ÖîÈ磺ʱ¼ä¾«¶ÈÊǶàÉÙ£¿Ê±¼äÊÇ·ñÔÊÐí³öÏÖÆ«²î£¬ÔÊÐíµÄÆ«²îÊǶàÉÙ£¬Æ«²îÖ®ºóÈçºÎ´¦Àí£¿ÏµÍ³µÄ¸ºÔØÈçºÎ£¿Õâ¸ö³ÌÐòÔÊÐíÕ¼ÓõÄϵͳ×ÊÔ´ÊÇ·ñÓÐÏÞÖÆ£¿Õâ¸ö³ÌÐòÔËÐеÄÓ²¼þƽ̨ÈçºÎ£¿
ΪÁ˱ãÓÚ·ÖÎö£¬ÎÒÃÇËø¶¨ÌâĿΪ“ÿ¸ô2Ãî´òÓ¡µ±Ç°µÄϵͳʱ¼ä(¾àÀëUNIX¼ÍÔªµÄÃëÊý£©
”¡£
»ùÓÚsleepµÄÆÓËØ½â·¨
¿´µ½Õâ¸öÌâÄ¿£¬ÎÒÏë´ó¼ÒµÄÏë·¨ºÍÎÒÒ»Ñù£¬¶¼ÊÇÊ×ÏÈÏëµ½ÀàËÆÕâÑùµÄ½â·¨£º
#
include
<
stdio.
h>
int
main(
int
argc,
char
*
argv[
]
)
{
while
(
1)
{
printf
(
"%d\n"
,
time
(
NULL
)
)
;
  ......
ת×Ôhttp://blog.163.com/ericxia_gnikam/blog/static/969208792008102545614453/
ÔÚLinux kernelµÄÔ´´úÂëÖУ¬¾³£Äܼûµ½if(likely(x))»òif(unlikely(x))Ö®ÀàµÄÓ÷¨£¬ÆäÈ·Çк¬ÒåÐèҪ˵Ã÷һϣ¬ÒÔ±ã¸üºÃµÄÀí½âkernelµÄÔ´´úÂë¡£
likelyÓëunlikelyÕâÁ½¸öºêÔÚlinux/compiler.hÖе͍ÒåÈçÏ£º
#define likely(x) __builtin_expect(!!(x),1)
#define unlikely(x) __builtin_expect(!!(x),0)
ºÜÃ÷ÏÔ£¬ÐèÒªÏÈŪÇå³þÕâ¸ö__builtin_expect()º¯ÊýµÄÒâÒå¡£
__builtin_expect()ÊÇgccµÄÒ»¸öÄÚ½¨º¯Êý£¬ÆäÔÐÍÈçÏ£º
long __builtin_expect (long exp, long c);
¼Çס¸Ãº¯ÊýÓÉGCC±¾ÉíÌṩ£¬ÓÃÓÚÓÅ»¯´úÂë¡£Ö»ÖвÎÊýexpΪÈÎÒ»±í´ïʽ£¬c±ØÐëΪ³£Á¿Öµ£¬ÆäÒâÒåÊÇÔÚexp==cʱ£¬¸Ãº¯Êý·µ»Ø·Ç0Öµ£¬Òâ¼´Ï£Íûexp==c¡£
»Øµ½likelyºÍunlikely£¬likelyʵ¼ÊÊÇÏ£Íû±í´ïʽx==1£¬¼´±í´ïʽx³ÉÁ¢£¬²¢ÇÒÔÚ´úÂëʵ¼ÊÖ´ÐÐÖУ¬±í´ïʽxÔÚ¾ø´ó¶àÊýÇé¿öÏÂÊdzÉÁ¢µÄ£¬Ïà·´£¬unlikelyÊÇÏ£Íû±í´ïʽÔÚ¾ø´ó¶àÊýÇé¿öϲ»³ÉÁ¢£¬
Èç¹ûÓÐÏÂÁдúÂ룺
if(unlikely(a > b) {
foo();
}
Õâ¶Î´úÂëµÄÒâ˼ÊÇ£¬ÔÚ¾ø´ó¶àÊýÇé¿öÏÂa¡¡>¡¡bÕâ¸ö±í´ïʽÊDz»³ÉÁ¢µÄ£¬² ......
Linux 2.6.19.x Äں˱àÒëÅäÖÃÑ¡Ïî¼ò½é
×÷Õߣº½ð²½¹ú
°æÈ¨ÉùÃ÷
±¾ÎÄ×÷ÕßÊÇһλ×ÔÓÉÈí¼þ°®ºÃÕߣ¬ËùÒÔ±¾ÎÄËäÈ»²»ÊÇÈí¼þ£¬µ«ÊDZ¾×Å GPL
µÄ¾«Éñ·¢²¼¡£ÈκÎÈ˶¼¿ÉÒÔ×ÔÓÉʹÓá¢×ªÔØ¡¢¸´ÖƺÍÔÙ·Ö·¢£¬µ«±ØÐë±£Áô×÷ÕßÊðÃû£¬Ò಻µÃ¶ÔÉùÃ÷ÖеÄÈκÎÌõ¿î×÷ÈκÎÐÎʽµÄÐ޸ģ¬Ò²²»µÃ¸½¼ÓÈÎºÎÆäËüÌõ¼þ¡£Äú¿É
ÒÔ×ÔÓÉÁ´½Ó¡¢ÏÂÔØ¡¢´«²¥´ËÎĵµ£¬µ«Ç°ÌáÊDZØÐ뱣֤ȫÎÄÍêÕû×ªÔØ£¬°üÀ¨ÍêÕûµÄ°æÈ¨ÐÅÏ¢ºÍ×÷ÒëÕßÉùÃ÷¡£
ÆäËû×÷Æ·
±¾ÎÄ×÷ÕßÊ®·ÖÔ¸ÒâÓëËûÈ˹²ÏíÀͶ¯³É¹û£¬Èç¹ûÄã¶ÔÎ񵀮äËû·Òë×÷Æ·»òÕß¼¼ÊõÎÄÕÂÓÐÐËȤ£¬¿ÉÒÔÔÚÈçÏÂλÖò鿴ÏÖÓÐ×÷Æ·µÄÁÐ±í£º
½ð²½¹ú×÷Æ·Áбí
BUG±¨¸æ£¬ÇдèÓë̽ÌÖ
ÓÉÓÚ×÷ÕßˮƽÓÐÏÞ£¬Òò´Ë²»Äܱ£Ö¤×÷Æ·ÄÚÈÝ׼ȷÎÞÎó£¬ÇëÔÚÔĶÁÖÐ×ÔÐмø±ð¡£Èç¹ûÄã·¢ÏÖÁË×÷Æ·ÖеĴíÎó£¬ÇëÄúÀ´ÐÅÖ¸³ö£¬ÄÄÅÂÊÇ´í±ð×ÖÒ²ºÃ£¬ÈκÎÌá¸ß×÷Æ·
ÖÊÁ¿µÄ½¨ÒéÎÒ¶¼½«ÐéÐĽÓÄÉ¡£Èç¹ûÄãÔ¸Òâ¾Í×÷Æ·ÖеÄÏà¹ØÄÚÈÝÓëÎÒ½øÐнøÒ»²½ÇдèÓë̽ÌÖ£¬Ò²»¶ÓÄãÓëÎÒÁªÏµ¡£ÁªÏµ·½Ê½£ºMSN:
csfrank122@hotmail.com
Code maturity level options
´úÂë³ÉÊì¶ÈÑ¡Ïî
Prompt for development and/or incomplete code/drivers
ÏÔʾÉÐÔÚ¿ª·¢ÖлòÉÐδÍê³ÉµÄ´úÂëÓëÇý¶¯.³ý·ÇÄãÊDzâÊÔÈËÔ±»òÕß¿ª·¢Õß,·ñÔòÇëÎðÑ¡Ôñ
Genera ......
»ùÓÚI/O RegionµÄ²Ù×÷º¯Êý__XXX_region()£¬LinuxÔÚÍ·Îļþinclude/linux/ioport.hÖж¨ÒåÁËÈý¸ö¶ÔI/OÄÚ´æ×ÊÔ´½øÐвÙ×÷µÄºê£º
¡¡¡¡¢Ùrequest_mem_region()ºê£¬ÇëÇó·ÖÅäÖ¸¶¨µÄI/OÄÚ´æ×ÊÔ´¡£
¡¡¡¡¢Úcheck_ mem_region()ºê£¬¼ì²éÖ¸¶¨µÄI/OÄÚ´æ×ÊÔ´ÊÇ·ñÒѱ»Õ¼Óá£
¡¡¡¡¢Ûrelease_ mem_region()ºê£¬ÊÍ·ÅÖ¸¶¨µÄI/OÄÚ´æ×ÊÔ´¡£
¡¡¡¡ÕâÈý¸öºêµÄ¶¨ÒåÈçÏ£º
¡¡¡¡#define request_mem_region(start,n,name)
¡¡¡¡¡¡¡¡__request_region(&iomem_resource, (start), (n), (name))
¡¡¡¡#define check_mem_region(start,n)
¡¡¡¡ __check_region(&iomem_resource, (start), (n))
¡¡¡¡#define release_mem_region(start,n)
¡¡¡¡ __release_region(&iomem_resource, (start), (n))
¡¡¡¡ÆäÖУ¬²ÎÊýstartÊÇI/OÄÚ´æ×ÊÔ´µÄÆðʼÎïÀíµØÖ·£¨ÊÇCPUµÄRAMÎïÀíµØÖ·¿Õ¼äÖеÄÎïÀíµØÖ·£©£¬²ÎÊýnÖ¸¶¨I/OÄÚ´æ×ÊÔ´µÄ´óС¡£
......
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<sys/stat.h>
#include<fcntl.h>
#include<sys/types.h>
#include<dirent.h>
#define MAX 1024
char path[100];
char *strmin(char *des,const char *min)
{
int i=strlen(des);
int j=strlen(min);
if(i>=j)
{
strncpy(des+i-j,"\0",1);
}
return des;
}
void print(char *path,char *tmpname)
{
struct stat buf;
if(stat(path,&buf)<0)
{
printf("stat error!\n");
return;
}
struct dirent *filename;
if(S_ISDIR(buf.st_mode))
{
DIR *dp;
dp=opendir(path);
while(1)
{
filename=readdir(dp);
if(filename == NULL)
{
strmin(path,tmpname);
closedir(dp);
&nbs ......