Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB
ÈÈÃűêÇ©£º c c# c++ asp asp.net linux php jsp java vb Python Ruby mysql sql access Sqlite sqlserver delphi javascript Oracle ajax wap mssql html css flash flex dreamweaver xml
 ×îÐÂÎÄÕ : linux

LinuxÐźÅÁ¿ ¹²ÏíÄÚ´æºÍÏûÏ¢¶ÓÁÐ

LinuxÐźÅÁ¿ ¹²ÏíÄÚ´æºÍÏûÏ¢¶ÓÁÐ
1. ÐźÅÁ¿
ʹÓÃÐźÅÁ¿¿ÉÒÔʵÏÖ½ø³Ì¼äͬ²½¡£Ö÷Òªº¯Êý¶¨Ò壺
#include <sys/sem.h>
int semctl(int sem_id, int sem_num, int command, …);
int semget(key_t key, int num_sems, int sem_flags);
int semop(int sem_id, struct sembuf *sem_ops, size_t num_sem_ops);
 
semgetº¯Êý¸ù¾ÝÌṩµÄkeyÉú³ÉÐźÅÁ¿±êʶ·û£»
semctlº¯Êý³õʼ»¯»òÕßɾ³ýÐźÅÁ¿±êʶ·û£»
semopº¯Êý¸Ä±äÐźÅÁ¿´óС
 
2. ¹²ÏíÄÚ´æ
¹²ÏíÄÚ´æ»úÖÆÊ¹µÃÁ½¸ö²»Ïà¹Ø½ø³Ì¿ÉÒÔ¶ÁÈ¡ºÍÐÞ¸Äͬһ¶ÎÄÚ´æ´Ó¶øÊµÏÖÊý¾Ý¹²Ïí¡£Ö÷Òªº¯Êý¶¨Òå:
#include <sys/shm.h>
void *shmat(int shm_id, const void *shm_addr, int shmflg);
int shmctl(int shm_id, int cmd, struct shmid_ds *buf);
int shmdt(const void *shm_addr);
int shmget(key_t key, size_t size, int shmflag);
 
shmgetº¯Êý¸ù¾ÝkeyÉú³ÉÓÐЧµÄ¹²ÏíÄÚ´æ¶ÎÃû£¬¸ù¾Ý²ÎÊýsize²úÉú¹²ÏíµÄÄÚ´æÈÝÁ¿¡£
shmatº¯Êý½«´´½¨µÄ¹²ÏíÄÚ´æ¶ÎÁ¬½Óµ½Ò»¸ö½ø³ÌµÄÄÚ´æ¿Õ¼äÖУ¬ÕâÑù²Å¿ÉÒÔʹÓøöÎÄÚ´æ¡£
shmdtº¯Êý½«¹²ÏíÄÚ´æ´Óµ±Ç°ÄÚ´æÖзÖÀë¡£
shmctlº¯Êý¿ÉÒÔɾ³ý¹²ÏíÄÚ´æ¶Î¡£
 
3. ÏûÏ ......

LinuxÎļþ²Ù×÷ƪ

1.н¨Îļþ
   Ö¸Áî:¢Ù> ÎļþÃû
          ¢Útouch ÎļþÃû
2.ɾ³ýÎļþ
   Ö¸Áî:rm
   ²ÎÊý:-d  Ö±½Ó°ÑÓûɾ³ýµÄĿ¼µÄÓ²Á¬½ÓÊý¾Ýɾ³É0,ɾ³ýĿ¼
           -f   Ç¿ÖÆÉ¾³ýÎļþ»òĿ¼
           -i   ɾ³ý¼ÈÓÐÎļþ»òĿ¼֮ǰÏÈѯÎÊÓû§
           -r  µÝ¹é´¦Àí,½«Ö¸¶¨Ä¿Â¼ÏµÄËùÓÐÎļþ¼°×ÓĿ¼һ²¢´¦Àí
           -v  ÏÔʾָÁîÖ´Ðйý³Ì
   ......

linuxÇý¶¯Ö® ledÇý¶¯

Á·ÊÖ, µÚÒ»¸ö×Ö·ûÇý¶¯.
ÓÃÄ£¿é¼ÓÔØ·½·¨
»ªÇåÔ¶¼û<ǶÈëʽlinuxÉ豸Çý¶¯¿ª·¢Ïê½â>µÄ´úÂëÄÃÀ´¸ÄµÄ.  
±àÒë¹ý³Ì·¢Ïֺܶà´íÎó.
×îºó·¢ÏÖ Õâ±¾Êé´øµÄÇý¶¯´úÂë¶¼ÊÇ»ùÓÚlinux2.4µÄ...ĿǰÎÒÓõÄlinux2.6, ´úÂ벿·ÖÐèÒª×öÐÞ¸Ä.
Îҵİå×ÓÊÇ ÓÑÉÆÖ®±ÛµÄ 2410.  vmware+ubuntu  nfs½»²æ±àÒë
Ê×ÏÈ
linux2.6Äں˱àÒëÀïÃæÒª´ò¿ªloadable modules,  ÒÔ¼° unload µÄÑ¡ÏîҲҪѡÉÏ ·ñÔòÓò»µ½rmmodÃüÁî ºÇºÇ.
µÚ¶þ (ºÍÉÏÃæµÚÒ»ÌõÒ»Ñù,½ñºóдÇý¶¯¶¼»áÒªÓõ½Õâ¸ö)
ÒªÖÆ×÷linux ÄÚºËÊ÷(linux2.6±ØÐë)
ÔÚlinux2.6.14.1µÄ´úÂëĿ¼
make bzImage 
»áÉú³ÉÒ»¸öÐÂÎļþ vmlinux 
È»ºó make modules   //±àÒëÄ£¿é
       make modules install //°²×°Ä£¿é
½áÊøÖ®ºó»áÔÚ/lib/modulesÏÂÉú³É2.6.14.1Îļþ¼Ð,  Õâ¸ö¾ÍÊÇÄÚºËÊ÷ÁË.  Ö÷ÒªÓõ½µÄ¾ÍÊÇÀïÃæµÄÍ·Îļþ.
µÚÈý
ÐÞ¸ÄÊéÉÏ´øµÄ´úÂë, Ö÷ÒªÊǸĶ˿ںÅ, ÒÔ¼°²¿·Ö´úÂë»ùÓÚlinux2.6»á²»Í¬, , Çë¼ûÎÒÌṩµÄÏÂÔØ, ÀïÃæ°üÀ¨ÁË makefile, Çý¶¯Ô´´úÂë, ²âÊÔ³ÌÐòÔ´´úÂë.
 ×¢Òâ»áÓõ½ioremap()º¯Êý,  ¾ø¶ÔµØÖ·µ½ÐéÄâµØÖ·µÄת»», È»ºóÓÃÖ¸ÕëÀ´ ......

Linux 0.11 Äں˱ʼÇ

<1> ÈÎÎñ0µÄ¶ÑÕ»ÎÊÌâ
Ò»Ö±²»Ã÷°×schedule.cÀïµÄtask_unionµÄstackºÍuser_stackÊÇʲô¹ØÏµ£¬head.sÀï¾ÍÉèÖÃÁËespÖ¸Ïòuser_stack, ȴһֱûÓÐÓõ½task_union£¬Ö±µ½¿´µ½INIT_TASK²ÅÃ÷°×£¬´Ó½øÈë±£»¤Ä£Ê½µ½Ìø×ª½øÓû§Ì¬¶¼ÊÇÓõÄuser_stackÕâ¸öÕ»£¬¶øÈÎÎñ0µÄtssÖеÄesp0Ö¸Ïòtask_unionµÄstack, Ò²¾ÍÊǵ±ÈÎÎñ0ÔÙÌø×ª½øÄÚºË̬ʱ²ÅÓÃtask_unionµÄÕ»¡£×ܽáÆðÀ´¾ÍÊÇ´Ó½øÈë±£»¤Ä£Ê½µ½³õʼ»¯Íê³É£¬user_stackÓÃ×÷ÄÚºË̬ջ£¬½øÈëÓû§Ì¬ºóuser_stackÓÃ×öÓû§Ì¬Õ»£¬task_unionµÄstackÓÃ×öÄÚºË̬ջ¡£
<2> ÄÚºË̬ѰַÎÊÌâ
Äں˴úÂë¶ÎºÍÊý¾Ý¶Î»ùַΪ0, ¶ÎÏÞ³¤Îª16M£¬¶øÇÒÔÚhead.sÖÐËùÉèÖõÄǰËĸöÒ³±íÓëÎïÀíÄÚ´æÒ³ÊÇÒ»Ò»¶ÔÓ¦µÄ£¬ËùÒÔÔÚÄÚºË̬¿ÉÒÔÖ±½ÓѰַ16MÄڴ棨0.11°æÖ»Ö§³Ö16MÄڴ棩£¬Ò²¼´ÏßÐÔµØÖ·ºÍÎïÀíµØÖ·ÏàµÈ¡£
<3>ÎïÀíµØÖ··ÖÅä
<4>ÏßÐÔµØÖ··ÖÅä
ÿ¸öÈÎÎñÕ¼64MµÄÏßÐÔµØÖ·¿Õ¼ä£¬ÈÎÎñ0ʵ¼ÊÖ»ÓÃÁË0-64MµÄǰ640KB£¬ÒòΪ¶ÎÏÞ³¤±»Éè³ÉÁË640KB¡£ÒòΪ×î¶àÖ§³Ö64¸öÈÎÎñ£¬ËùÒÔ×ܹ²Ê¹ÓÃÁË4GµÄÏßÐÔµØÖ·¿Õ¼ä¡£ ......

Cov++ÔÚLinuxϼòµ¥Ê¹Óà Èí¼þ¸²¸ÇÂʹ¤¾ß


Covtool
ÊÇÒ»¸öÓöÔ
C++
´úÂë½øÐÐÔËÐÐʱ¸²¸ÇÂʼì²éµÄ¹¤¾ß£¬¿ÉÒÔÒÔÐÐΪµ¥Î»¼ì²é³öÄÇЩ´úÂëÔÚÔËÐÐÖб»Ê¹Óã¬ÄÇЩûÓÐʹÓá£
1.      
°²×°
make
make tests
make install
½«
/usr/local/covtool
Ìí¼Óµ½
PATH
½«
/usr/local/covtools
Ìí¼Óµ½
MANPATH£¨´Ë²½ºÜÖØÒª£¬ËüµÄman±ÈÎĵµ¿¿Æ×µÃ¶à£©
ÎÒÒ»°ãÊÇÌí¼ÓÔÚ/etc/profileÖÐ
 
2.      
ʹÓÃ
Èç¹ûÊÇʹÓÃ
makefile
£º
(1).
½«
g++
Ìæ»»Îª
cov++
¼´¿É¡£
(2).
ÖØÐÂ
build
(3).
ÔËÐÐËùÓеIJâÊÔ£¨Ç뾡Á¿È«µÄ²âÊÔ¸÷ÖÖÇé¿ö£©
(4).
ºÏ²¢
*.covexp
Îļþ£¨
cov++
ϵͳÉè¼ÆÎª¿ÉÒÔÔËÐжà´Î²âÊÔ³ÌÐòµÄ¸÷ÖÖÇé¿öÉú³É¶à¸ö
*.covexp
£¬È»ºó½«¶à´Î½á¹ûͳºÏÆðÀ´ÐγÉÒ»¸ö±¨¸æ£©£º
       
covmerge.exe find * -name ‘*.covexp’ –print
‘\
       
>merged.db
Í˳ö¡£
(5).
ÓÃ
*.db
ÎļþÉú³É
html
Îĵµ¡£
       
gen_html merged.db
(6).
Éú³ÉµÄÎĵµÔÚ
coverage_html
Ŀ¼ ......

LINUX C ¶¨Ê±Æ÷

¡¾ÊµÏÖ¹¦ÄÜ¡¿£ºLinuxϵÄC±à³Ì£º±àдһ¸ö³ÌÐò£¨¿â£©£¬ÊµÏÖ¶¨Ê±Æ÷£¨¼ÆÊ±Æ÷£©µÄ¹¦ÄÜ£¬ËüÄÜΪÓû§ÌṩÔÚͬһ½ø³ÌÖжà´ÎʹÓõĶ¨Ê±Æ÷¡£ÕâÀïÒªÇóÓÃÐźÅÀ´ÊµÏÖ¡£
¡¾½âÌâ˼·¡¿£º±àдһ¸ö½á¹¹ÌåTimer´ú±íÒ»¸ö¼ÆÊ±Æ÷£¬È»ºóÔÙ¶¨ÒåTimerÀàÐ͵ÄÊý×émyTimer[N]£¬ÓÃÀ´±£´æÎÒÃÇÉèÖõĶ¨Ê±Æ÷£»ÔÙ¶¨Ò庯ÊýsetTimer£¨£©Éú³É¼ÆÊ±Æ÷£¬²¢½«Éú³ÉµÄ¼ÆÊ±Æ÷±£´æµ½myTimerÖУ¬ÕâÑùͨ¹ý¶à´Îµ÷Ó㬾ͿÉÒÔÔÚͬһ¸ö½ø³ÌÖÐÉú³É¶à¸ö¼ÆÊ±Æ÷£»¶¨Òåtimeout()ÐźŴ¦Àíº¯Êý£¬Ã¿¸ôÒ»Ãë²úÉúÒ»¸öÐźţ¬Í¨¹ýµ÷ÓÃtimeout()¶ÔËùÓеĶ¨Ê±Æ÷ɨÃèÒ»±é£¬¼ì²éÄÄЩ¼ÆÊ±Æ÷³¬Ê±¡£
¡¾³ÌÐò´úÂë¡¿£ºÈçÏÂ
#include<stdlib.h>
#include<unistd.h>
#include<signal.h>
#include<time.h>
#include<sys/time.h>
#define N 100  //ÉèÖÃ×î´óµÄ¶¨Ê±Æ÷¸öÊý
int i=0,t=1; //i´ú±í¶¨Ê±Æ÷µÄ¸öÊý£»t±íʾʱ¼ä£¬ÖðÃëµÝÔö
struct Timer //Timer½á¹¹Ì壬ÓÃÀ´±£´æÒ»¸ö¶¨Ê±Æ÷µÄÐÅÏ¢
{   
    int total_time;  //ÿ¸ôtotal_timeÃë
    int left_time;   //»¹Ê£left_timeÃë
    int func;      ......

LINUX C ¶¨Ê±Æ÷

¡¾ÊµÏÖ¹¦ÄÜ¡¿£ºLinuxϵÄC±à³Ì£º±àдһ¸ö³ÌÐò£¨¿â£©£¬ÊµÏÖ¶¨Ê±Æ÷£¨¼ÆÊ±Æ÷£©µÄ¹¦ÄÜ£¬ËüÄÜΪÓû§ÌṩÔÚͬһ½ø³ÌÖжà´ÎʹÓõĶ¨Ê±Æ÷¡£ÕâÀïÒªÇóÓÃÐźÅÀ´ÊµÏÖ¡£
¡¾½âÌâ˼·¡¿£º±àдһ¸ö½á¹¹ÌåTimer´ú±íÒ»¸ö¼ÆÊ±Æ÷£¬È»ºóÔÙ¶¨ÒåTimerÀàÐ͵ÄÊý×émyTimer[N]£¬ÓÃÀ´±£´æÎÒÃÇÉèÖõĶ¨Ê±Æ÷£»ÔÙ¶¨Ò庯ÊýsetTimer£¨£©Éú³É¼ÆÊ±Æ÷£¬²¢½«Éú³ÉµÄ¼ÆÊ±Æ÷±£´æµ½myTimerÖУ¬ÕâÑùͨ¹ý¶à´Îµ÷Ó㬾ͿÉÒÔÔÚͬһ¸ö½ø³ÌÖÐÉú³É¶à¸ö¼ÆÊ±Æ÷£»¶¨Òåtimeout()ÐźŴ¦Àíº¯Êý£¬Ã¿¸ôÒ»Ãë²úÉúÒ»¸öÐźţ¬Í¨¹ýµ÷ÓÃtimeout()¶ÔËùÓеĶ¨Ê±Æ÷ɨÃèÒ»±é£¬¼ì²éÄÄЩ¼ÆÊ±Æ÷³¬Ê±¡£
¡¾³ÌÐò´úÂë¡¿£ºÈçÏÂ
#include<stdlib.h>
#include<unistd.h>
#include<signal.h>
#include<time.h>
#include<sys/time.h>
#define N 100  //ÉèÖÃ×î´óµÄ¶¨Ê±Æ÷¸öÊý
int i=0,t=1; //i´ú±í¶¨Ê±Æ÷µÄ¸öÊý£»t±íʾʱ¼ä£¬ÖðÃëµÝÔö
struct Timer //Timer½á¹¹Ì壬ÓÃÀ´±£´æÒ»¸ö¶¨Ê±Æ÷µÄÐÅÏ¢
{   
    int total_time;  //ÿ¸ôtotal_timeÃë
    int left_time;   //»¹Ê£left_timeÃë
    int func;      ......
×ܼǼÊý:5772; ×ÜÒ³Êý:962; ÿҳ6 Ìõ; Ê×Ò³ ÉÏÒ»Ò³ [154] [155] [156] [157] 158 [159] [160] [161] [162] [163]  ÏÂÒ»Ò³ βҳ
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ