Linux ÏÂÌõ¼þ±äÁ¿
1.»¥³âËøµÄ´æÔÚÎÊÌ⣺
»¥³âËøÒ»¸öÃ÷ÏÔµÄȱµãÊÇËüÖ»ÓÐÁ½ÖÖ״̬£ºËø¶¨ºÍ·ÇËø¶¨¡£ÉèÏëÒ»ÖÖ¼òµ¥Çé¾°£º¶à¸öÏ̷߳ÃÎÊͬһ¸ö¹²Ïí×ÊԴʱ£¬²¢²»ÖªµÀºÎʱӦ¸ÃʹÓù²Ïí×ÊÔ´£¬Èç¹ûÔÚÁÙ½çÇøÀï¼ÓÈëÅжÏÓï¾ä£¬»òÕß¿ÉÒÔÓÐЧ£¬µ«Ò»À´Ð§Âʲ»¸ß£¬¶þÀ´¸´ÔÓ»·¾³Ï¾ÍÄÑÒÔ±àдÁË£¬ÕâÊÇÎÒÃÇÐèÒªÒ»¸ö½á¹¹£¬ÄÜÔÚÌõ¼þ³ÉÁ¢Ê±´¥·¢ÏàÓ¦Ị̈߳¬½øÐбäÁ¿Ð޸ĺͷÃÎÊ¡£
2.Ìõ¼þ±äÁ¿:
Ìõ¼þ±äÁ¿Í¨¹ýÔÊÐíÏß³Ì×èÈûºÍµÈ´ýÁíÒ»¸öÏ̷߳¢ËÍÐźŵķ½·¨ÃÖ²¹ÁË»¥³âËøµÄ²»×㣬Ëü³£ºÍ»¥³âËøÒ»ÆðʹÓá£Ê¹ÓÃʱ£¬Ìõ¼þ±äÁ¿±»ÓÃÀ´×èÈûÒ»¸öỊ̈߳¬µ±Ìõ¼þ²»Âú×ãʱ£¬Ïß³ÌÍùÍù½â¿ªÏàÓ¦µÄ»¥³âËø²¢µÈ´ýÌõ¼þ·¢Éú±ä»¯¡£Ò»µ©ÆäËüµÄij¸öÏ̸߳ıäÁËÌõ¼þ±äÁ¿£¬Ëü½«Í¨ÖªÏàÓ¦µÄÌõ¼þ±äÁ¿»½ÐÑÒ»¸ö»ò¶à¸öÕý±»´ËÌõ¼þ±äÁ¿×èÈûµÄÏ̡߳£ÕâЩÏ߳̽«ÖØÐÂËø¶¨»¥³âËø²¢ÖØÐ²âÊÔÌõ¼þÊÇ·ñÂú×ã¡£
3.Ìõ¼þ±äÁ¿µÄÏà¹Øº¯Êý
Í·Îļþ£º#include <pthread.h>
pthread_cond_t cond = PTHREAD_COND_INITIALIZER; //Ìõ¼þ±äÁ¿½á¹¹
int pthread_cond_init(pthread_cond_t *cond, pthread_condattr_t
*cond_attr);
int pthread_cond_signal(pthread_cond_t *cond);
int pthread_cond_broadcast(pthread_cond_t *cond);
int pthread_cond_wait(pthread_cond_t *cond, pthread_mutex_t *mutex);
int pthread_cond_timedwait(pthread_cond_t *cond, pthread_mutex_t
*mutex, const struct timespec *abstime);
int pthread_cond_destroy(pthread_cond_t *cond);
Ïêϸ˵Ã÷£º
£¨1£©´´½¨ºÍ×¢Ïú
Ìõ¼þ±äÁ¿ºÍ»¥³âËøÒ»Ñù£¬¶¼Óо²Ì¬¶¯Ì¬Á½ÖÖ´´½¨·½Ê½
a.¾²Ì¬·½Ê½
¾²Ì¬·½Ê½Ê¹ÓÃPTHREAD_COND_INITIALIZER³£Á¿£¬ÈçÏ£º
pthread_cond_t cond=PTHREAD_COND_INITIALIZER
b.¶¯Ì¬·½Ê½
¶¯Ì¬·½Ê½µ÷ÓÃpthread_cond_init()º¯Êý£¬API¶¨ÒåÈçÏ£º
int pthread_cond_init(pthread_cond_t *cond, pthread_condattr_t *cond_attr)
¾¡¹ÜPOSIX±ê×¼ÖÐΪÌõ¼þ±äÁ¿¶¨ÒåÁËÊôÐÔ£¬µ«Ô
Ïà¹ØÎĵµ£º
½ñÌì±àÒëBlueZµÄʱºò£¬Í»È»¼ä·¢ÉúÁËÒ»¸ö´´½¨ Ó²Á´½Óʧ°Ü £¬ÄÔº£ÀïÌø³öÁËÁËÒ»¸öʲôÊÇÓ²Á´½ÓµÄ¸ÅÄһʱ¼ä»¹Õæ»Ø´ð²»ÉÏÀ´£¬googleÁËÏ£¬·¢ÏÖÕâÆª²©ÎÄÃèÊöµÄºÜÇåÎú£¬×ªÔØÖ®£¬ÒÔ±¸Íü...
Á´½Ó——ÊÇÒ»ÖÖÔÚ¹²ÏíÎļþºÍ·ÃÎÊËüµÄÓû§µÄÈô¸ÉĿ¼ÏîÖ®¼ä½¨Á¢ÁªÏµµÄÒ»ÖÖ·½·¨¡£
LinuxÖаüÀ¨Á½ÖÖÁ´½Ó£ºÓ²Á´½Ó(Hard Link)ºÍÈí ......
Îļþfun.c£¬fun.h£¬hello.c£¬hello.h£¬main.c¶¯Ì¬¿âº¯Êý¶¼ÔÚfun.cºÍhello.cÀïÃæ
----------------------------
fun.c:
int add(int a, int b)
{
return a+b;
}
fun.h:
#ifndef _FUN_H_11
#define _FUN_H_11
int add(int a, int b);
#endif
----------------------------
hello.c:
££i nclude <stdio ......
ÀýÈ磺
/home/filesÎļþ¼ÐÏÂÓÐÎļþmain.c:
#include <stdio.h>
#include "tou.h"
void main()
{
a();
}
/home/files/commonÎļþ¼ÐÏÂÓÐÎļþtou.hºÍshixian.c¡£
tou.hΪ£º
extern void a();
ÈôÓжà¸öshixianÎļþ£¬±ÈÈçshixian1.c, shixian2.c£¬¶¼¿ÉÒÔÔÚtou.hÖÐÓÃexternÉùÃ÷³öÀ´¡£
shixian.cΪ£º
#inclu ......
½ñÌìÎҳɹ¦µÄÐ¶ÔØÁËLinux ²Ù×÷ϵͳ£¬ÎҸоõºÜÐË·Ü£¬¾Í´ËÎÒ°ÑÎÒ×öµÄ¹ý³Ì˵Ï¡£
ÎҵĵçÄÔ×°ÁË˫ϵͳÏÈ×°µÄÊÇWindows XP SP3ϵͳ£¬ºóÀ´ÔÚÒ»¸ö10GµÄÂß¼·ÖÇøÖÐ×°Á˸öMandriva-linux-2008£¬Ìý˵Linuxϵͳ²»ÄÜËæ±ãɾ³ý£¬ÄÇÑù¿ÉÄÜ»áÆÆ»µÓ²ÅÌÖ÷Òýµ¼¼Ç¼£¨mbr£©£¬Òò´ËÎÒ¾ÍÔÚÍøÉÏ ......
ÕâÊÇÒ»·â·¢µ½ÓÊÏäÀïÃæµÄÓʼþ£¬¸Ð¾õÓеã´ú±íÐÔ£¬ÕâÀï×ö¸öͳһ»Ø´ð£¬Ò»¼ÒÖ®ÑÔ¹þ£¬»¶ÓÅÄש¡£
ÔÎÄÈçÏ£º
ÎÒ´Ócsdnѧϰ´ó±¾ÓªµÃµ½ÄúµÄÐÅÏ¢¡£²»ºÃÒâ˼´ò½ÁÄú¡£
ÎÒÏÖÔÚÓÃc++ÔÚlinuxÏ¿ª·¢´óÐÍÓ¦ÓóÌÐò¡£ÎÒÏëÇë½ÌÊÇ·ñÖµµÃÉîÈëѧϰlinux kernel¡£
ÎÒûÓÐÌØ±ð¶àµÄʱ¼ä¡£ÁíÍâÎÒÓжàÄêWindowsÏ¿ª·¢Ó¦ÓóÌÐòµÄ¾Ñé¡£
ÎҵĻشð£ ......