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

LinuxÏÂÏ̵߳Ĵ´½¨

×÷Õß:Hoyt Email:hoytluo@21cn.comÔ­ÎĵØÖ· http://wiki.chinaunix.net/index.php/Zhuan_c7
ǰÑÔ: LinuxÏÂÏ̵߳Ĵ´½¨ºÍ»ù±¾µÄʹÓÃ
Ï̵߳Äͬ²½ºÍ»¥³â
Ï̵߳ÄÌõ¼þ±äÁ¿
ÏȽéÉÜʲôÊÇÏß³Ì.ÎÒÃDZàдµÄ³ÌÐò´ó¶àÊý¿ÉÒÔ¿´³ÉÊǵ¥Ï̵߳Ä.¾ÍÊdzÌÐòÊǰ´ÕÕÒ»¶¨µÄ ˳ÐòÀ´Ö´ÐÐ.Èç¹ûÎÒÃÇʹÓÃÏ̵߳ϰ,³ÌÐò¾Í»áÔÚÎÒÃÇ´´½¨Ï߳ɵĵط½·Ö²æ,±ä³ÉÁ½¸ö"³Ì Ðò"ÔÚÖ´ÐÐ.´ÖÂԵĿ´À´ºÃÏóºÍ×Ó½ø³Ì²î²»¶àµÄ,Æäʵ²»È».×Ó½ø³ÌÊÇͨ¹ý¿½±´¸¸½ø³ÌµÄµØ Ö·¿Õ¼äÀ´Ö´ÐеÄ.¶øÏß³ÌÊÇͨ¹ý¹²Ïí³ÌÐò´úÂëÀ´Ö´ÐеÄ,½²µÄͨË×Ò»µã¾ÍÊÇÏ̵߳ÄÏàͬµÄ ´úÂë»á±»Ö´Ðм¸´Î.ʹÓÃÏ̵߳ĺô¦ÊÇ¿ÉÒÔ½ÚÊ¡×ÊÔ´,ÓÉÓÚÏß³ÌÊÇͨ¹ý¹²Ïí´úÂëµÄ,ËùÒÔû Óнø³Ìµ÷¶ÈÄÇô¸´ÔÓ.
1.Ï̵߳Ĵ´½¨ºÍʹÓÃ
Ï̵߳Ĵ´½¨ÊÇÓÃÏÂÃæµÄ¼¸¸öº¯ÊýÀ´ÊµÏÖµÄ.
#include <pthread.h>

int pthread_create(pthread_t *thread,pthread_attr_t *attr,
void *(*start_routine)(void *),void *arg);
void pthread_exit(void *retval);
int pthread_join(pthread *thread,void **thread_return);

pthread_create´´½¨Ò»¸öÏß³Ì,threadÊÇÓÃÀ´±íÃ÷´´½¨Ï̵߳ÄID,attrÖ¸³öÏ̴߳´½¨Ê±ºò µÄÊôÐÔ,ÎÒÃÇÓÃNULLÀ´±íÃ÷ʹÓÃȱʡÊôÐÔ.start_routineº¯ÊýÖ¸ÕëÊÇÏ̴߳´½¨³É¹¦ºó¿ªÊ¼ Ö´Ðеĺ¯Êý,argÊÇÕâ¸öº¯ÊýµÄΨһһ¸ö²ÎÊý.±íÃ÷´«µÝ¸østart_routineµÄ²ÎÊý. pthrea d_exitº¯ÊýºÍexitº¯ÊýÀàËÆÓÃÀ´Í˳öÏß³Ì.Õâ¸öº¯Êý½áÊøÏß³Ì,Êͷź¯ÊýµÄ×ÊÔ´,²¢ÔÚ×îºó ×èÈû,Ö±µ½ÆäËûÏß³ÌʹÓÃpthread_joinº¯ÊýµÈ´ýËü.È»ºó½«*retvalµÄÖµ´«µÝ¸ø**thread_ return.ÓÉÓÚÕâ¸öº¯ÊýÊÍ·ÅËùÒԵĺ¯Êý×ÊÔ´,ËùÒÔretval²»Äܹ»Ö¸Ïòº¯ÊýµÄ¾Ö²¿±äÁ¿. pt hread_joinºÍwaitµ÷ÓÃÒ»ÑùÓÃÀ´µÈ´ýÖ¸¶¨µÄÏß³Ì.×¢ÒâÓÉÓÚÏ̲߳»Í¬ÓÚ½ø³Ì.ËùÒÔÏß³ÌµÄ Í˳öÒ»¶¨ÒªÓÃpthread_exit¶ø²»ÊÇʹÓÃexit.·ñÔòÕû¸ö³ÌÐò»áÍ˳öµÄ. ÏÂÃæÎÒÃÇʹÓÃÒ»¸ö ʵÀýÀ´½âÊÍÒ»ÏÂʹÓ÷½·¨.ÔÚʵ¼ùÖÐ,ÎÒÃǾ­³£Òª±¸·ÝһЩÎļþ.ÏÂÃæÕâ¸ö³ÌÐò¿ÉÒÔʵÏÖµ± ǰĿ¼ÏµÄËùÓÐÎļþ±¸·Ý.±¸·ÝºóµÄºó׺ÃûΪbak
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <pthread.h&


Ïà¹ØÎĵµ£º

Èý¿î Linux ϵÄÃâ·Ñ×ÀÃæ¼¶É±¶¾Èí¼þ(ͼ)


ÓÉÓÚ Linux Á¼ºÃµÄÓû§È¨ÏÞ¹ÜÀíÌåϵ£¬²¡¶¾ÍùÍùÊÇ Linux ϵͳ¹ÜÀíÔ±×îºó²ÅÐèÒª¿¼ÂǵÄÎÊÌâ¡£ÒÔÍù£¬Linux ÉϵÄɱ¶¾Èí¼þÖ÷ÒªÊÇΪÆóÒµµÄÓʼþºÍÎļþ·þÎñÆ÷ËùÉè¼ÆµÄ¡£Èç½ñ£¬Ëæ×Å Linux ×ÀÃæÓû§ÊýÁ¿µÄÔö³¤£¬×ÀÃæÓû§ÔÚÊÜÒæÓÚ Linux ϵͳ¶Ô²¡¶¾½ÏÇ¿µÄÌìÈ»ÃâÒßÁ¦µÄͬʱ£¬Ò²ÐèҪɱ¶¾Èí¼þÇåÀí´ÓÍøÂç»òUÅÌ´øÀ´µÄWIndows²¡¶¾¡£¾¡¹ÜÄÇЩ ......

LinuxÏÂC++¿ª·¢¹¤¾ß½éÉÜ

LinuxÏÂC++¿ª·¢¹¤¾ß½éÉÜ
 
 
¡¡¡¡¸ÅÊö
¡¡¡¡¾ÍC£«£«¿ª·¢¹¤¾ß¶øÑÔ£¬ÓëWindowsÏÂ΢Èí£¨VC£¬ VS2005µÈ£©Ò»Í³ÌìÏÂÏà±È£¬Linux/UnixÏÂC£«£«¿ª·¢£¬¿ÉνÎ廨°ËÃÅ£¬¸÷ʽ¸÷Ñù¡£Emacs, vi, eclipse, anjuta£¬kdevelopµÈ²ã³ö²»Çî¡£
¡¡¡¡WindowsÏ£¬¿ª·¢¹¤¾ß¶àÒÔ¼¯³É¿ª·¢»·¾³IDEµÄÐÎʽչÏÖ¸ø×îÖÕÓû§¡£ÀýÈ磬VS2005¼¯³ ......

linuxÄں˶ÁÊé±Ê¼Ç£¨½ø³ÌÖÕÖ¹º¯Êý·ÖÎö£©Èý

do_exit() Function
-----------------------------------------------------------------------
kernel/exit.c
707 NORET_TYPE void do_exit(long code)
708 {
709 struct task_struct *tsk = current;
710
711 if (unlikely(in_interrupt()))
712 panic("Aiee, killing interrupt handler!");
713 if ......

linuxϵͳµ÷ÓÃÁбí

Ò»¡¢½ø³Ì¿ØÖÆ£º
fork
´´½¨Ò»¸öнø³Ì
clone
°´Ö¸¶¨Ìõ¼þ´´½¨×Ó
½ø³Ì
execve
ÔËÐпÉÖ´ÐÐÎļþ
exit
ÖÐ
Ö¹½ø³Ì
_exit
Á¢¼´ÖÐÖ¹µ±Ç°½ø³Ì
getdtablesize
½ø
³ÌËùÄÜ´ò¿ªµÄ×î´óÎļþÊý
getpgid
»ñȡָ¶¨½ø³Ì×é±êʶºÅ
setpgid
Éè
ÖÃÖ¸¶¨½ø³Ì×é±êÖ¾ºÅ
getpgrp
»ñÈ¡µ±Ç°½ø³Ì×é±êʶºÅ
setpgrp
Éè
Öõ±Ç°½ø³Ì×é± ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ