linux api±Ê¼Ç£¨6£©£ºỊ̈߳¨ËÄ£© Ïß³Ì˽ÓÐÊý¾Ý
±¾ÎĽ«ÃèÊöÏ̵߳ÄÒ»¸ö±È½ÏÖØÒªµÄÒ»·½Ã棺Ïß³Ì˽ÓÐÊý¾Ý£¬ÈçÏ´úÂ룺
#include <pthread.h>
#include <unistd.h>
#include <stdio.h>
pthread_key_t kKey = 0;
void * ThreadProc(void* arg)
{
char* a = (char*)(arg);
sleep(2);
pthread_setspecific(kKey, a);
sleep(1);
char* str = (char*)pthread_getspecific(kKey);
printf("thread: %s\n", str);
}
int main()
{
pthread_t thread_handle1 = 0;
pthread_t thread_handle2 = 0;
char a[] = {"i am A"};
char b[] = {"i am B"};
pthread_create(&thread_handle1, NULL, ThreadProc, a);
pthread_key_create(&kKey, NULL);
pthread_create(&thread_handle2, NULL, ThreadProc, b);
void* out1 = NULL;
void* out2 = NULL;
pthread_join(thread_handle1, &out1);
pthread_join(thread_handle2, &out2);
return 0;
}
ʹÓÃÏß³Ì˽ÓÐÊý¾ÝµÄ²½Ö裺
1£©Ê¹ÓÃpthread_key_create·ÖÅäÒ»¸öÏß³Ì˽ÓÐÊý¾ÝµÄkey£¬ÕâÀïÐèҪעÒâµÄÊǵ±ÎÒÃǵ÷ÓÃÁËÕâ¸öº¯Êý
Ö®ºó½ø³ÌÖÐËùÓеÄÏ̶߳¼¿ÉÒÔʹÓÃÕâ¸ökey£¬²¢ÇÒͨ¹ýÕâ¸ökey»ñÈ¡µ½µÄ˽ÓÐÊý¾ÝÊÇ»¥²»ÏàͬµÄ£¬±ÈÈçÏß³Ì
Aͨ¹ýkeyÉèÖÃÁËÊý¾ÝD£¬µ«Ïß³ÌB²¢Ã»ÓÐÉèÖÃÊý¾Ý£¬ÄÇôAͨ¹ýkey»ñÈ¡µÄÊý¾Ýµ±È»ÊÇD£¬¶øB»ñÈ¡µÄÊÇÒ»¸ö
¿ÕµÄÖµ¡£ÁíÍâÐèҪעÒâµÄÊDz»¹ÜÏß³ÌÊÇÔÚpthread_key_createµ÷ÓÃ֮ǰ»òÖ®ºó²úÉú£¬Ëü¶¼Äܹ»ÔÚº¯Êýµ÷ÓÃ
Ö®ºóʹÓÃÕâ¸ökey¡£
2£©Ê¹ÓÃpthread_setspecificº¯Êý½«keyºÍÒ»¸öÏß³Ì˽ÓÐÊý¾Ý°ó¶¨¡£
3£©Í¨¹ýpthread_getspecificº¯ÊýºÍkey»ñÈ¡µ½Õâ¸öÏ̵߳Ä˽ÓÐÊý¾Ý¡£
ÎÒÒ»Ö±¾õµÃÏß³Ì˽ÓÐÊý¾Ý²ßÂԺܺÃÓ㬵«¿¼Âǵ½Ê¹Óùý³ÌÖÐÐèÒª½øÐГϵͳµ÷ÓÔ£¨pthread_getspecificÊÇϵͳµ÷ÓÃÂ𣿣©£¬
Èç¹û±È½ÏƵ·±µØµ÷ÓÃÕâ¸öº¯ÊýµÄ»°Ëµ²»¶¨»áʹ³ÌÐòµÄÐÔÄÜϽµ£¬µ«¿´ÁËmanÎĵµÖеÄÒ»¾ä»°ºóÕâ¸öÖйËÂÇÉÔ΢¼õÇᣬ¾¡¹Ü»¹ÊÇÓÐÒÉÎÊ£º
“the function to pthread_getspecific() has been designed to favor speed and simplicity over error reporting”
ÉÏÃæËµËüµÄËÙ¶ÈÒѾ±»Éè¼ÆµØºÜ¿ìÁË¡£
Ïà¹ØÎĵµ£º
ϵͳ
# uname -a # ²é¿´ÄÚºË/²Ù×÷ϵͳ/CPUÐÅÏ¢
# head -n 1 /etc/issue # ²é¿´²Ù×÷ϵͳ°æ±¾
# cat /proc/cpuinfo # ²é¿´CPUÐÅÏ¢
# hostname &nbs ......
¸ñʽ:ls [options] [filename]
×÷ÓÃ:ÏÔʾĿ¼ÄÚÈÝ,ÀàËÆdosµÄdir
³£ÓòÎÊý:
-a ²»Òþ²ØÈκÎÒÔ"."×Ö·û¿ªÊ¼µÄÎļþ
-l ʹÓýϳ¤µÄ¸ñʽÏÔʾÐÅÏ¢
-r °´ÕÕÎļþÃûµÄÄæÐò´òÓ¡Êä³ö
-F ¼ÓÉÏÎļþÀàÐ͵Äָʾ·û
¸ñʽ:cat [options] [filename]
×÷ÓÃ:ÏÔʾÎļþµÄÄÚÈÝ,ÊÇconcat ......
ÔÚÆ½³£µÄ×÷ÒµÖУ¬ÓÐʱºòÀÏʦÈÃ×Ô¼ºÊµÏÖÖîÈçcatµÈÀàµÄ³ÌÐò£¬ÓÐʱºò½ÐÓÃshellʵÏÖ£¬ÓÐʱºòÓÃcʵÏÖ£¬µ«ÊÇÎÒ¾³£Ò»µãÍ·Ð÷¶¼Ã»ÓУ¬²»¹ýÎÒÏëµ½linux¿ªÔ´µÄ£¬ÃüÁî´úÂë¿ÉÒÔÄÃÀ´²Î¿¼Ï°¢£¬ËùÒÔÎÒ¾ÍÏë¿´¿´linuxÃüÁîµÄÔ´´úÂ룬ÓÚÊǾͿªÊ¼Á˰ڶɹ·¹·µÄËÑË÷¹ý³Ì¡£´Ó½á¹ûÀ´¿´£¬ÓÐÁ½ÖÖÇé¿ö£¬Ò»ÖÖÊǸøÓèrpmµÄ°üµÄÐÎʽ£»ÁíÒ»ÖÖÊÇ»ùÓÚdeb°üµÄÐ ......
Á´½ÓÎļþÓеãÀàËÆÓÚWindows µÄËùν¿ì½Ý·½Ê½£¬µ«²¢²»ÍêȫһÑù¡£Á´½ÓÓÐÁ½ÖÖ·½Ê½£¬ÈíÁ´½ÓºÍÓ²Á´½Ó¡£
¡¡¡¡ÈíÁ´½ÓÎļþ
¡¡¡¡ÈíÁ´½ÓÓֽзûºÅÁ´½Ó£¬Õâ¸öÎļþ°üº¬ÁËÁíÒ»¸öÎļþµÄ·¾¶Ãû¡£¿ÉÒÔÊÇÈÎÒâÎļþ»òĿ¼£¬¿ÉÒÔÁ´½Ó²»Í¬ÎļþϵͳµÄÎļþ¡£Á´½ÓÎļþÉõÖÁ¿ÉÒÔÁ´½Ó²»´æÔÚµÄÎļþ£¬Õâ¾Í²úÉúÒ»°ã³ÆÖ®Îª"¶ÏÁ´"µÄÎÊÌâ(»òÔ»“ÏÖ ......
[¾¹ý°²×°²âÊԳɹ¦µÄ·½·¨from CYBEND ]
µÚÒ»²½£ºÏµÍ³ÓëÈí¼þµÄ×¼±¸
ϵͳ°æ±¾ redhat enterprise linux 5 ,Äں˰汾 2.6.18
µÚ¶þ²½£ºÈí¼þ°üµÄ×¼±¸
httpdÈí¼þ°ü£ºhttpd-2.2.8.tar.bz2
mysqlÈí¼þ°ü´Ómysql¹Ù·½ÍøÕ¾ÏÂÔØ£¬ÎÒÑ¡ÓõÄÊÇehel5µÄrpm°ü
MySQL-server-community-5.0.51a-0.rhel5.i386.rpm
MySQL-client-community ......