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µÄÖ¸Õë¸ø¸³ÉÏ£¬Ä£¿é³õʼ»¯µÄʱºò¾Í»
Ïà¹ØÎÊ´ð£º
дÁ˸ö²âÊÔ³ÌÐòÈçÏÂ
struct hostent *hp;
char AlarmDevIP[20];
int x2;
hp = gethostbyname("www.google.com");
if (hp)
{
......
ÔÚ×Ô¼ºµÄµçÄÔÉϰ²×°ÁËubuntu ¾ÍÊÇÏëÍæÒ»ÏÂ3D×ÀÃæ£¬ÓÚÊÇÏÂÔØÁË
compizconfig-settings-manager
emerald
simple-ccsm
fusion
ÕâЩ¶«Î÷£¬°²×°ÍêÖ®ºó£¬ÎÒÔÚµçÄÔÀïµã»÷ÁËemerald ......
linux ÏÂusbÉ豸£¬ÔÚrootȨÏÞÏ£¬É豸¿ÉÒÔÕý³£ÕÒµ½Çý¶¯£¬
µ«ÔÚÆÕͨÓû§ÏÂÕÒ²»µ½É豸Çý¶¯£¬
ÔõÑù²Å¿ÉÒÔÔÚÆÕͨÓû§ÏÂʹÓÃusbÉ豸£¿
Çë¸ßÊÖÖ¸½Ì
°ï¶¥Ï¡¢
ûÓöµ½¹ý£¬ÎÒÓõÄfedoraÆÕͨÓû§Ä¬ÈϵÄÒ²ÄÜÓðɣ ......
ÈçÌ⣬ÔÚWINDOWSµ×ϵÄCODE»á£¬µ«ÔÚLINUXϲ»ÖªµÀÈçºÎʵÏÖ£¬JSµÄ´úÂëÓ¦¸ÃÊDz»Ò»ÑùµÄ¡£ Çó½Ì¡£
·Ö²»¹»ÔÙ¼Ó¡£
http://topic.csdn.net/u/20100113/08/17ba1e71-4c33-43f6-91a5-0e031c86e5ed.html
linux ......
´ó¼ÒºÃ£º
ÎҵĵçÄÔÁ·µÄÊǽÌÓýÍø£¬Éϲ»ÁËÍâ¹úµÄÍøÕ¾£¬ÔÚÓÃLinux¸üÐÂÈí¼þ£¬ÀýÈçapt-get»òÊÇyumµÄʱºòÁ¬²»µ½·þÎñÆ÷¡£²»ÖªµÀ´ó¼ÒÓÐûÓйýÕâÖÖÇé¿ö°¡£¬ÊÇÈçºÎ½â¾öµÄ°¡£¬Ð»ÁË£¡
¿ÉÒÔÕÒһϣ¬eduµÄ¸üÐÂÔ´¡£±ÈÈç ......