linuxÉ豸Çý¶¯ SCULLÎÊÌâ
ÏÈÓÃmknodÃüÁî´´½¨Ò»¸ö×Ö·ûÉ豸£¬È»ºóÒª°ÑÕâ¸öÎļþµÄfile½á¹¹ÖеÄf_opÖ¸ÏòÒ»¸öfile_operations½á¹¹£¬ÈçÏ£º
struct file_operations sucll_fops{
.owner = THIS_MODULE;
.....................
.....................
£ý½á¹¹ÖÐΪʲôҪ¼Ó¸ö ¡®.¡¯?ʲôÒâ˼£¿
sucll_openº¯ÊýÊÇÓÉËÀ´Ö´Ðеģ¿Ôõô²ÅÄܰÑf_opÖ¸Ïòfile_operations£¿ºÎʱע²áscullÉ豸£¿
Çë¸ßÈË£¬¸ø¸öÒ»°ãÐÔÃèÊö¡£
http://linux.chinaitlab.com/driver/803499.html
×Ô¼ºÕÒµ½ÆªÎÄÕÂ
½á¹¹ÖÐΪʲôҪ¼Ó¸ö ¡®.¡¯?ʲôÒâ˼£¿
c99µÄ
ÒýÓÃ:
µ±Ò»¸öÀàËÆ½á¹¹µÄ¶«Î÷ÐèÒªÁÙʱ¹¹ÔìµÄʱºò£¬¿ÉÒÔÓà (type_name){xx,xx,xx} ÕâÓеãÏñ C++ µÄ¹¹Ô캯Êý
¡¡¡¡³õʼ»¯½á¹¹µÄʱºòÏÖÔÚ¿ÉÒÔÕâÑùд£º
¡¡¡¡struct {int a[3], b;} hehe[] = { [0].a = {1}, [1].a = 2 };
¡¡¡¡struct {int a, b, c, d;} hehe = { .a = 1, .c = 3, 4, .b = 5} // 3£¬4 ÊÇ¶Ô .c£¬.d µÄ¸³Öµ
sucll_fops ½«functionÓëÉ豸¹ØÁª register_chr_dev(Õë¶Ô×Ö·ûÉ豸)ºó¾Í×¢²áÁË
Óû§Ì¬µ÷Óúó¶¼ÐèҪͨ¹ýfop½á¹¹µÄ³ÉÔ±½øÐÐÏàÓ¦²Ù×÷
Õâ¸ö¾ÍÊǽṹÌåµÄ¸³Öµ·½Ê½ÎÊÌâ
sucll_openº¯ÊýÊÇÓÉËÀ´Ö´Ðеģ¿
scull_openº¯ÊýÊÇÓÉϵͳµ÷ÓÃopenÀïÖ´Ðеģ¬Ò»°ã¹ý³ÌÊǵ±Óû§³ÌÐòµ÷ÓÃopenϵͳµ÷Óôò¿ªÉ豸ÎļþµÄʱºò£¬½øÈëÄÚºË̬£¬Ö´ÐÐopenϵͳµ÷Óã¬ÔÚopenÀï»áÈ·¶¨µ÷ÓöÔÓ¦µÄxxx_openÕâÀïÊÇscull_open.
Ôõô²ÅÄܰÑf_opÖ¸Ïòfile_operations£¿
ÔÚÄ£¿é³õʼ»¯À»áÓÐÏàÓ¦µÄ´úÂ룬»òÕß˵Õâ¸öscullÉ豸ÓÐ×Ô¼ºµÄ½á¹¹Ì壬ÔڽṹÌåÀï»á½«file_operationµÄÖ¸Õë¸ø¸³ÉÏ£¬Ä£¿é³õʼ»¯µÄʱºò¾Í»
Ïà¹ØÎÊ´ð£º
Á½¸öÎļþ1.PC£¬1.inc
1.PCÓвÙ×÷oracleÊý¾Ý¿âµÄ ,1.incÒ²ÓвÙ×÷oracleÊý¾Ý¿â
ÔÚÆäËûÊý¾ÝÖÐÈçinformix ÖÐ$include 1.inc¾Í¿ÉÒÔʹÓÃÁË
ÔÚORACLEÊý¾Ý¿âÖØ $include 1.inc²»¿ÉÓà EXEC SQL include 1.incÒ²²»¿É ......
linux ÏÂusbÉ豸£¬ÔÚrootȨÏÞÏ£¬É豸¿ÉÒÔÕý³£ÕÒµ½Çý¶¯£¬
µ«ÔÚÆÕͨÓû§ÏÂÕÒ²»µ½É豸Çý¶¯£¬
ÔõÑù²Å¿ÉÒÔÔÚÆÕͨÓû§ÏÂʹÓÃusbÉ豸£¿
Çë¸ßÊÖÖ¸½Ì
°ï¶¥Ï¡¢
ûÓöµ½¹ý£¬ÎÒÓõÄfedoraÆÕͨÓû§Ä¬ÈϵÄÒ²ÄÜÓðɣ ......
ÔõÑù°ÑÒ»¸öÍêÕûµÄjava web ¹¤³Ì²¿Êðµ½linuxÏ£¬Ó¦Ó÷þÎñÆ÷ÊÇ£ºweblogic£¿Ð»Ð»£¡
°Ñµ÷ÊԺõÄwebÏîÄ¿·Åµ½¶ÔÓ¦µÄ·þÎñÆ÷·¢²¼Ä¿Â¼Ï¾ÍÐÐÁË
°ï¶¥¡£
ÎÒÒ²ÕýÔÚѧϰLinuxϲ¿Êðjavaweb..
·Åµ½tomcatµÄwebappsÀïÃæ²» ......
ÎÒÏÂÔØµÄlinux2.6.29ÖеÄwifiÖ»Ö§³Öwep·½Ê½¼ÓÃÜ. ÔõôÑùÈÃËûÄÜÖ§³Öwpa»òwpa II·½Ê½¼ÓÃÜ?
²¢ÇÒ»¹ÓиöÆæ¹ÖµÄÎÊÌâ¾ÍÊÇlinux2.6.29ÖеÄwepÃÜÂëÒªÊÇ5/13×Ö½Ú³¤µÄ.ÆäËûµÄ³¤¶È²»Ö§³Ö.
mac80211\wext.cÖÐÓÐÈçÏ´úÂë
stati ......