Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

LinuxÄں˵Äioctlº¯Êýѧϰ


ÎÒÕâÀï˵µÄioctlº¯ÊýÊÇÔÚÇý¶¯³ÌÐòÀïµÄ£¬ÒòΪÎÒ²»ÖªµÀ»¹ÓÐûÓбðµÄ³¡ºÏÓõ½ÁËioctl£¬ ËùÒԾ͹涨ÁËÎÒÃÇÌÖÂ۵ķ¶Î§¡£ÎªÊ²Ã´ÒªÐ´ÆªÎÄÕÂÄØ£¬ÊÇÒòΪÎÒǰһÕó×Ó±»ioctl¸ø¸ã»ìÁË£¬Õ⼸Ìì²ÅŪÃ÷°×Ëü£¬ÓÚÊÇÔÚÕâÀïÇåÀíÒ»ÏÂÍ·ÄÔ¡£
Ò»¡¢ ʲôÊÇioctl¡£
ioctlÊÇÉ豸Çý¶¯³ÌÐòÖжÔÉ豸µÄI/OͨµÀ½øÐйÜÀíµÄº¯Êý¡£Ëùν¶ÔI/OͨµÀ½øÐйÜÀí£¬¾ÍÊǶÔÉ豸µÄÒ»Ð©ÌØÐÔ½øÐпØÖÆ£¬ÀýÈç´®¿ÚµÄ´«Êä²¨ÌØÂÊ¡¢Âí´ïµÄתËٵȵȡ£ËüµÄµ÷ÓøöÊýÈçÏ£º
int ioctl(int fd, ind cmd, …)£»
ÆäÖÐfd¾ÍÊÇÓû§³ÌÐò´ò¿ªÉ豸ʱʹÓÃopenº¯Êý·µ»ØµÄÎļþ±êʾ·û£¬cmd¾ÍÊÇÓû§³ÌÐò¶ÔÉ豸µÄ¿ØÖÆÃüÁÖÁÓÚºóÃæµÄÊ¡ÂԺţ¬ÄÇÊÇһЩ²¹³ä²ÎÊý£¬Ò»°ã×î¶àÒ»¸ö£¬ÓлòûÓÐÊǺÍcmdµÄÒâÒåÏà¹ØµÄ¡£
ioctlº¯ÊýÊÇÎļþ½á¹¹ÖеÄÒ»¸öÊôÐÔ·ÖÁ¿£¬¾ÍÊÇ˵Èç¹ûÄãµÄÇý¶¯³ÌÐòÌṩÁ˶ÔioctlµÄÖ§³Ö£¬Óû§¾Í¿ÉÒÔÔÚÓû§³ÌÐòÖÐʹÓÃioctlº¯Êý¿ØÖÆÉ豸µÄI/OͨµÀ¡£
¶þ¡¢ ioctlµÄ±ØÒªÐÔ
Èç¹û²»ÓÃioctlµÄ»°£¬Ò²¿ÉÒÔʵÏÖ¶ÔÉ豸I/OͨµÀµÄ¿ØÖÆ£¬µ«ÄǾÍÊÇÂùÅ¡ÁË¡£ÀýÈ磬ÎÒÃÇ¿ÉÒÔÔÚÇý¶¯³ÌÐòÖÐʵÏÖwriteµÄʱºò¼ì²éÒ»ÏÂÊÇ·ñÓÐÌØÊâÔ¼¶¨µÄÊý¾ÝÁ÷ͨ¹ý£¬Èç¹ûÓеϰ£¬ÄÇôºóÃæ¾Í¸ú×Å¿ØÖÆÃüÁһ°ãÔÚsocket±à³ÌÖг£³£ÕâÑù×ö£©¡£µ«ÊÇÈç¹ûÕâÑù×öµÄ»°£¬»áµ¼Ö´úÂë·Ö¹¤²»Ã÷£¬³ÌÐò½á¹¹»ìÂÒ£¬³ÌÐòÔ±×Ô¼ºÒ²»áÍ·»èÑÛ»¨µÄ¡£
ËùÒÔ£¬ÎÒÃǾÍʹÓÃioctlÀ´ÊµÏÖ¿ØÖƵŦÄÜ¡£Òª¼Çס£¬Óû§³ÌÐòËù×÷µÄÖ»ÊÇͨ¹ýÃüÁîÂë¸æËßÇý¶¯³ÌÐòËüÏë×öʲô£¬ÖÁÓÚÔõô½âÊÍÕâЩÃüÁîºÍÔõôʵÏÖÕâЩÃüÁÕâ¶¼ÊÇÇý¶¯³ÌÐòÒª×öµÄÊÂÇé¡£
Èý¡¢ ioctlÈçºÎʵÏÖ
ÕâÊÇÒ»¸öºÜÂé·³µÄÎÊÌ⣬ÎÒÊÇÄÜÊ¡ÔòÊ¡¡£ÒªËµÇå³þËü£¬Ã»ÓÐËÄÎåǧ×ÖÊDz»Ðеģ¬ËùÒÔÎÒÕâÀïÊDz»¿ÉÄܰÑËü˵µÃ·Ç³£Çå³þÁË£¬²»¹ýÈç¹ûÓжÁÕß¶ÔÓû§³ÌÐòÔõôºÍÇý¶¯³ÌÐòÁªÏµÆðÀ´¸ÐÐËȤµÄ»°£¬¿ÉÒÔ¿´ÎÒǰһÕó×ÓдµÄ¡¶writeµÄ°ÂÃØ¡·¡£¶ÁÕßÖ»Òª°Ñwrite»»³Éioctl£¬¾ÍÖªµÀÓû§³ÌÐòµÄioctlÊÇÔõôºÍÇý¶¯³ÌÐòÖеÄioctlʵÏÖÁªÏµÔÚÒ»ÆðµÄÁË¡£
ÎÒÕâÀï˵һ¸ö´ó¸Å˼·£¬ÒòΪÎÒ¾õµÃ¡¶LinuxÉ豸Çý¶¯³ÌÐò¡·Õâ±¾ÊéÒѾ­ËµµÄ·Ç³£Çå³þÁË£¬µ«Êǵû¯Ò»Ð©Ê±¼äÀ´¿´¡£
ÔÚÇý¶¯³ÌÐòÖÐʵÏÖµÄioctlº¯ÊýÌåÄÚ£¬Êµ¼ÊÉÏÊÇÓÐÒ»¸öswitch{case}½á¹¹£¬Ã¿Ò»¸öcase¶ÔÓ¦Ò»¸öÃüÁîÂ룬×ö³öһЩÏàÓ¦µÄ²Ù×÷¡£ÔõôʵÏÖÕâЩ²Ù×÷£¬ÕâÊÇÿһ¸ö³ÌÐòÔ±×Ô¼ºµÄÊÂÇ飬ÒòΪÉ豸¶¼ÊÇÌØ¶¨µÄ£¬ÕâÀïҲû·¨Ëµ¡£¹Ø¼üÔÚÓÚÔõôÑù×éÖ¯ÃüÁîÂ룬ÒòΪÔÚioctlÖÐÃüÁîÂëÊÇΨһÁªÏµÓû§³ÌÐòÃüÁîºÍÇý¶¯³ÌÐòÖ§³ÖµÄ;¾¶¡£
ÃüÁîÂëµÄ×éÖ¯ÊÇÓÐһЩ½²¾¿µÄ£¬ÒòΪÎÒÃÇÒ»¶¨Òª×öµ½ÃüÁîºÍÉ豸ÊÇÒ»Ò»¶ÔÓ¦µÄ£¬ÕâÑù²Å²»»á½


Ïà¹ØÎĵµ£º

linuxµÄ´¥ÃþÆÁÖ®Î壺֡»º³åÉ豸ÉϽÏ×¼½çÃæµÄÅäÖÃ

£¨1£©Ö¡»º³åÉ豸¸úTTYµÄ¹ØÏµ¡£ÐèÒª¹Ø×¢tty¸úÖ¡»º³åÉ豸µÄ¹ØÏµ£¬Ò»°ãÇé¿öÏÂÖ¡»º³åÉ豸ÊÇ¿ÉÒÔ¶ÀÁ¢²Ù×÷µÄ£¬µ«ÊÇÈç¹ûΪÁ˱£Ö¤µ¥¶ÀÕ¼Óò»±»ÇÀÕ¼£¬Ëƺõ»¹Òª¹ØÁªÒ»¸öttyÖÕ¶Ë¡£ÕâÀïÓõÄÊÇÐéÖÕ¶ËVT¡£
      ÐéÖÕ¶Ë£¬Ò²½ÐÐéÆÁ£¬ËüµÄÓ¢ÎÄÃû×ÖΪvirtual terminal,ËõдΪVT»òvt¡£ÔÚUnixϵͳÓû§ÖУ¬ÐéÖÕ¶ËÓÐ×Å ......

linuxÏÂvim+ctagsÓ÷¨


[/home/brimmer/src]$ ctags -R
"
-R"±íʾµÝ¹é´´½¨£¬Ò²¾Í°üÀ¨Ô´´úÂë¸ùĿ¼ÏµÄËùÓÐ×ÓĿ¼ÏµÄÔ´³ÌÐò¡£"
tags"ÎļþÖаüÀ¨ÕâЩ¶ÔÏóµÄÁÐ±í£º
l        
ÓÃ
#define¶¨ÒåµÄºê
l        
ö¾ÙÐͱäÁ¿µÄÖµ
l  ......

LinuxĿ¼½âÊÍ

/boot:ÕâÀï´æ·ÅµÄÊÇÆô¶¯LINUXʱʹÓõÄһЩºËÐÄÎļþ¡£
/dev:devÊÇdevice(É豸)µÄËõд¡£Õâ¸öĿ¼ÏÂÊÇËùÓÐLINUXµÄÍⲿÉ豸£¬Æä¹¦ÄÜÀàËÆDOSϵÄ.sysºÍWinϵÄ.vxd¡£ÔÚLINUXÖÐÉ豸ºÍÎļþÊÇÓÃͬÖÖ·½·¨·ÃÎʵġ£ÀýÈç:/dev/hda´ú±íµÚÒ»¸öÎïÀíIDEÓ²ÅÌ¡£
/etc:Õâ¸öĿ¼ÓÃÀ´´æ·ÅËùÓеÄϵͳ¹ÜÀíËùÐèÒªµÄÅäÖÃÎļþºÍ×ÓĿ¼¡£
/bin:bin ......

linux ÏÂc ³ÌÐò ¶Î´íÎó ·ÖÎö

fopen("/var/spool/cron/tmp","w+");
/////////////////////////////////////////
££i nclude <sys/types.h>
££i nclude <sys/stat.h>
££i nclude <fcntl.h>
££i nclude <unistd.h>
££i nclude <stdio.h>
££i nclude <string.h>
££i nclude <stdlib.h>
int main(){
in ......

¹È¸èAndroid±»LinuxÄں˳ýÃû

      2  Ô 3  ÈÕ£¬ Linux  Äں˿ª·¢Õß Greg Kroah-Hartman  ½« Android  µÄÇý¶¯³ÌÐò´Ó Linux Äں˓״̬Ê÷”£¨“ staging tree”  £©ÉϳýÈ¥£¬´Ó´Ë£¬ Android  Óë Linux  ¿ª·¢Ö÷Á÷½« ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ