linuxÖеÄlist
LinuxÄÚºËÌṩÁËlistÕâ¸öÊý¾Ý½á¹¹ÒÔ¼°²Ù×÷º¯Êý¡£Õâ¸öÊý¾Ý½á¹¹ÔÚÄÚºËÇý¶¯ÖÐʹÓù㷺£¬¶øÇÒȷʵ·½±ãʹÓá£ÎªÁËÏêϸÁ˽âÕâ¸öÊý¾Ý½á¹¹µÄÓ÷¨£¬·½±ãÒÔºóʹÓ㬰ÑÕâ¸öÊý¾Ý½á¹¹ÀïÃæµÄ¹¦Äܶ¼ÊÔÓÃÁËÒ»´Î£¬Çå³þÁ˺ܶࡣÏÂÃæÊÇʵÑé³ÌÐòºÍ×Ô¼ºµÃ³öµÄʹÓ÷½·¨£¬Çë¸ßÊÖ¶à¶àÖ¸½Ì¡£ Struct list_head { struct list_head *next, *prev ;}£» List½á¹¹Êµ¼ÊÉÏÊÇÒ»¸ölist_head½á¹¹¹¹³ÉµÄÁ´±í¡£Èç¹ûÏëʹÓÃÕâ¸ö½á¹¹À´¹¹Ôì×Ô¼ºµÄÁ´±í£¬Ö»Òª°ÑÕâ¸östruct list_head½á¹¹Ç¶Èëµ½×Ô¼ºµÄ½á¹¹ÌåÖУ¬³ÉΪ×Ô¼º½á¹¹ÌåµÄÒ»¸ö³ÉÔ±¼´¿É¡£Õû¸ölist.hÎļþµÄº¯Êý¶¼Ê¹ÓÃÕâ¸ö½á¹¹¹¹³ÉÒ»¸öÁ´±í£¬¶ø×Ô¼ºµÄ½á¹¹Ìå³ÉԱʵ¼Ê²¢²»ÔÚÁ´±íÉÏ£¬µ«ÊÇlist.hÖÐʹÓÃcontainer_ofÕâ¸öºê¿ÉÒÔͨ¹ý½á¹¹ÌåÖеÄstruct list_head³ÉÔ±µÄµØÖ·À´µÃµ½Õû¸ö½á¹¹ÌåµÄµØÖ·£¬ÕâÑù¾Í¿ÉÒÔʵÏÖʹÓÃlist.hÎļþÖе͍ÒåʵÏÖ×Ô¼ºµÄÁ´±í¹¹ÔìÁË¡£ list.hÌṩµÄº¯Êý¹¹ÔìµÄÁ´±íÊÇÓÐÒ»¸ö¿ÕÍ·½ÚµãµÄ¡£ Èç¹ûÔÚÓû§³ÌÐòÖÐʹÓÃÕâ¸ö½á¹¹µÄ»°£¬ÐèÒª¶ÔÕâ¸öÎļþ×öһЩ¸Ä¶¯¡£Ö÷ÒªÊÇÕÒ²»µ½ÈçºÎ½«Õâ¸öÍ·ÎļþÖ±½Ó°²×°µ½/usr/includeĿ¼Ï£¬Ö»ºÃÖ±½Ó¿½±´¡£µ«ÊÇÕâ¸öÍ·ÎļþÖÐͬʱ°üº¬ÁËÁíÍâµÄÁ½¸öÌåϵÏà¹ØµÄÍ·Îļþ£¬Ò»¸öÊÇprefetch.hÎļþ£¬Õâ¸öÎļþÌṩperfetchÕâ¸öº¯ÊýÓÃÀ´Õë¶ÔÌØ¶¨µÄCPUÌåϵ×öÓÅ»¯£»ÁíÒ»¸öÊÇasm/system.hÕâÁ½¸öÎļþÎÞ·¨Ìṩ£¬Ö»Äܲ»¿½±´£¬½«list.hÖÐʹÓõ½ÕâÁ½¸öÎļþµÄ²¿·ÖÖ±½Ó¿½±´µ½list.hÎļþÖС£Ö÷ÒªÊÇcontainer_ofºê£¨Õâ¸öÔÚkernel.hÖУ»ÁíÍâÐèÒª½«ËùÓеÄprefetch×¢Ê͵ô£¬·ñÔòÎÞ·¨Á´½Óͨ¹ý¡£ LIST_HEAD(name):Õâ¸öºê¿ÉÒÔ¶¨ÒåÒ»¸östruct list_head½á¹¹Ì壬²¢³õʼ»¯½á¹¹ÌåÖеÄÁ½¸ö³ÉÔ±º¯Êý LIST_INIT_HEAD( struct list_head *head) ;Õâ¸öº¯Êý³õʼ»¯¸ø¶¨µÄ½á¹¹Ì壬ʹµÄ³ÉÔ±Ö¸Ïò×Ô¼º£» List_add ( struct list_head *new , struct list_head *list );newÊÇÒªÌí¼Óµ½listÁ´±íÖеĽڵ㣻listÊÇÒªÌí¼Óµ½µÄÁ´±íÖеÄÒ»¸ö½Úµã£¬newÕâ¸ö½Úµã»áÌí¼Óµ½Õâ¸ö½ÚµãºóÃæ¡£Èç¹ûÌṩµÄlistÊÇÒ»¸öÁ´±íµÄÍ·½Úµã£¬ÄÇôÕâ¸öº¯ÊýÓÃÀ´Ä£ÄâÒ»¸öLIFOµÄÕ»ÊDz»´íµÄ¡£ list_add_tail( struct list_head *new , struct list_head *list );ºÍÉÏÃæµÄº¯ÊýÒ»Ñù£¬Ö»²»¹ýÊÇnewµÄλÖÃÔÚlistµÄÇ°Ãæ¡£Èç¹ûÌṩµÄlistÊÇÒ»¸öÁ´±íµÄÍ·½Úµã£¬ÄÇô¾ÍÊÇÒ»¸öFIFOµÄ¶ÓÁС£ list_del (struct list_head *entry , struct list_head *list );´ÓÁ´±íÖÐɾ³ýentry½Úµã£¬²¢½«entry½ÚµãµÄ³ÉÔ±Ö¸ÕëÖ¸ÏòÎÞЧµØÖ·¡£ list_replace(struct list_head * new , struct list_head *old);ÓýÚ
Ïà¹ØÎĵµ£º
http://www.openchess.org/noitatsko/programming/ (2001-05-24 16:47:48)
ÐźŴ¦Àí
--------------------------------------------------------------------------------
ÐźŴ¦Àí¸Å˵
ËͳöÐźÅ
½ÓÊÕÐźÅ
ÐźŵĴ¦Àí
ÈÎÎñ¿ØÖÆ
----------------------------------- ......
ÓÃsecureCRT»òÕ߯äËûһЩ¿Í»§¶Ë¹¤¾ßµÇ½µ½Linux¿ÉÒÔ¿´µ½ËüÏÔʾÁËһЩÑÕÉ«£¬ÕâÊÇÔõô×öµ½µÄÄØ£¿
linuxÎı¾ÖÕ¶Ë¿ÉÒÔÀûÓÃÒ»¸ö¼òµ¥¶øÌØÊâµÄÃüÁîÀ´¿ØÖÆÑÕÉ«µÄÏÔʾ£º\033[<command>m£¬ ÆäÖÐcommand¾ÍÊÇÒ»¸öÊý×Ö
Èç¹ûÊÇÓÃechoÀ´ÏÔʾµÄ»°£¬±ØÐëÖ¸¶¨-e²ÎÊý£¬Èç
echo -e "\033[32mtest\033[0m"
ÆäÖÐÊý×Ö0±íʾ»Ö¸´Ö®Ç° ......
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <pthread.h>
#include <semaphore.h>
#define M 10 // »º³åÊýÄ¿
int in = 0; // Éú²úÕß·ÅÖòúÆ·µÄλÖÃ
int out = 0; // Ïû·ÑÕßÈ¡²úÆ·µÄλÖÃ
int buff[M] = {0}; // »º³å³õʼ»¯Îª0£¬ ¿ªÊ¼Ê±Ã ......
Linux ÕýÔÚǶÈëʽ¿ª·¢ÁìÓòÎȲ½·¢Õ¹¡£ÒòΪ Linux ʹÓà GPL£¨Çë²ÎÔı¾ÎĺóÃæµÄ²Î¿¼×ÊÁÏ
£©£¬ËùÒÔÈκζԽ« Linux ¶¨ÖÆÓÚ
PDA¡¢ÕÆÉÏ»ú»òÕß¿ÉÅå´øÉ豸¸ÐÐËȤµÄÈ˶¼¿ÉÒÔ´ÓÒòÌØÍøÃâ·ÑÏÂÔØÆäÄں˺ÍÓ¦ÓóÌÐò£¬²¢¿ªÊ¼ÒÆÖ²»ò¿ª·¢¡£Ðí¶à Linux ¸ÄÁ¼Æ·ÖÖÓºÏÁËǶÈëʽ£¯ÊµÊ±Êг¡¡£ËüÃǰüÀ¨
RTLinux£¨ÊµÊ± Linux£©¡¢uclinux£¨ ......
ÏÈÕ³ÌùÒ»¸ölinux×î¼òµ¥µÄÇý¶¯£¬Æäʵ¶ÔÓÚÒ»¸ö´Ó2.4ÍæÉÏÀ´µÄÈËÀ´Ëµ£¬Çý¶¯²»¸´ÔÓ£¬±È½Ï²»Ï°¹ßµÄÊÇÄǸömakefile
Çý¶¯±¾Éí£º
hello.c:
#include <linux/init.h>
#include <linux/module.h>
#include <linux/kernel.h>
MODULE_LICENSE("Dual BSD/GPL");
static int hello_init(vodi){
&nbs ......