LinuxÖÐwaitÓ÷¨
LinuxÖÐwaitÓ÷¨£º
ϵͳÖеĽ©Ê¬½ø³Ì¶¼ÒªÓÉwaitϵͳµ÷ÓÃÀ´»ØÊÕ¡£
º¯ÊýÔÐÍ£º
#include<sys/types.h>
#include<sys/wait.h>
pid_t wait(int *status);
½ø³ÌÒ»µ©µ÷ÓÃÁËwait¾ÍÁ¢¼´×èÈû×Ô¼º£¬ÓÉwait×Ô¶¯·ÖÎöÊÇ·ñµ±Ç°½ø³ÌµÄij¸ö×Ó½ø³ÌÒѾÍ˳ö£¬Èç¹ûÈÃËüÕÒµ½ÁËÕâÑùÒ»¸öÒѾ±ä³É½©Ê¬µÄ×Ó½ø³Ì£¬wait¾Í»áÊÕ¼¯Õâ¸ö×Ó½ø³ÌµÄÐÅÏ¢£¬²¢°ÑËü³¹µ×Ïú»Ùºó·µ»Ø£»Èç¹ûûÓÐÕÒµ½ÕâÑùÒ»¸ö×Ó½ø³Ì£¬wait¾Í»áÒ»Ö±×èÈûÔÚÕâÀֱµ½ÓÐÒ»¸ö³öÏÖΪֹ¡£
²ÎÊýstatusÓÃÀ´±£´æ±»ÊÕ¼¯½ø³ÌÍ˳öʱµÄһЩ״̬£¬ËüÊÇÒ»¸öÖ¸ÏòintÀàÐ͵ÄÖ¸Õë¡£µ«Èç¹ûÎÒÃǶÔÕâ¸ö×Ó½ø³ÌÊÇÈçºÎËÀµôºÁ²»ÔÚÒ⣬ֻÏë°ÑÕâ¸ö½©Ê¬½ø³ÌÏûÃðµô£¬£¨ÊÂʵÉϾø´ó¶àÊýÇé¿öÏ£¬ÎÒÃǶ¼»áÕâÑùÏ룩£¬ÎÒÃǾͿÉÒÔÉ趨Õâ¸ö²ÎÊýΪNULL£¬¾ÍÏñÏÂÃæÕâÑù£º
pid = wait(NULL);
Èç¹û³É¹¦£¬wait»á·µ»Ø±»ÊÕ¼¯µÄ×Ó½ø³ÌµÄ½ø³ÌID£¬Èç¹ûµ÷Óýø³ÌûÓÐ×Ó½ø³Ì£¬µ÷Óþͻáʧ°Ü£¬´Ëʱwait·µ»Ø-1£¬Í¬Ê±errno±»ÖÃΪECHILD¡£
Àý×Ó£º
/*wait.c*/
#include <sys/types.h>
#include <sys/wait.h>
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
#include <errno.h>
int main()
{
pid_t pc, pr;
pc = fork();
if ( pc < 0 ) /* Èç¹û³ö´í */
{
printf("create child prcocess error: %s\n", strerror(errno));
exit(1);
}
else if ( pc == 0) /* Èç¹ûÊÇ×Ó½ø³Ì */
{
printf("I am child process with pid %d \n", getpid());
sleep(3);/* ˯Ãß3ÃëÖÓ */
exit(0);
}
else /* Èç¹ûÊǸ¸½ø³Ì */
&nbs
Ïà¹ØÎĵµ£º
³ÌÏà¹Øº¯Êý£º
pthread_attr_init()
pthread_attr_setschedpolicy()
pthread_attr_setschedparam()
pthread_attr_destroy()
¾ßÌåÓ¦ÓÃdemo£º
pthread_attr_init(&attr);
pthread_attr_setschedpolicy ......
Linux ¶àÏß³ÌͨÐÅ
Linux ¶àÏß³ÌͨÐÅ
Õª×Ô×ÊÁÏ£¨linux ÓëWindows²»Í¬£©
Ï̼߳äÎÞÐèÌØ±ðµÄÊֶνøÐÐͨÐÅ£¬ÒòΪÏ̼߳ä¿ÉÒÔ¹²ÏíÊý¾Ý½á¹¹£¬Ò²¾ÍÊÇÒ»¸öÈ«¾Ö±äÁ¿¿ÉÒÔ±»Á½¸öÏß³ÌͬʱʹÓᣲ»¹ýҪעÒâµÄÊÇÏ̼߳äÐèÒª×öºÃͬ²½£¬Ò»°ãÓÃmutex¡£¿ÉÒԲο¼Ò»Ð©±È½ÏеÄUNIX/Linux±à³ÌµÄÊ飬¶¼»áÌáµ½PosixÏ̱߳à³Ì£¬±ÈÈç¡¶U ......
Linux½ø³Ì¼äͨÐŵķ½·¨
1¡¢¹ÜµÀ(pipe)
2¡¢ÓÐÃû¹ÜµÀ(named pipe)
3¡¢ÐźÅÁ¿
4¡¢ÏûÏ¢¶ÓÁÐ
5¡¢ÐźÅ
6¡¢¹²ÏíÄÚ´æ
7¡¢Ì×½Ó×Ö
-------------------------------------------------------------------------------
linux½ø³Ì¼äͨÐÅ
1. ¹ÜµÀ¡£
ÄäÃûÒ»´ÎÐÔʹÓõ쬰ëË«¹¤¡£Ò»¸ö½ø³ÌÍùÊä³ö¶Ëд¹ÜµÀ£¬ÁíÒ»¸ö½ø³Ì´Ó ......
ÕʺŹÜÀí
/etc/passwd ϵͳÕʺÅÐÅÏ¢
/etc/shadow ÕʺÅÃÜÂëÐÅÏ¢ ¾MD5 32λ¼ÓÃÜ
ÔÚÃÜÂëÀ¸Ç°Ãæ¼Ó¡º * ¡»¡º ! ¡»½ûֹʹÓÃijÕʺÅ
/etc/group &nb ......
Ò»¡¢Äں˵ĻñµÃ
¿ÉÒÔ´ÓÍøÉÏÏÂÔØÄÚºËÎļþ£¬http://www.kernel.org¡£Èç¹ûÊÇΪÁËÁ·Ï°£¬¾¡Á¿ÏÂÔØ£².4.xµÄÄںˡ£ÒòΪ2.6.xµÄÄں˱Ƚϴ󣬵±È»±àÒëÒ²ÐèÒª¸ü¶¼µÄʱ¼ä¡£
¶þ¡¢Äں˵ıàÒë
LinuxÄں˵ıàÒë²Ëµ¥Ö÷ÒªÓÐÈý¸ö°æ±¾£º
£±£©make config£º½øÈëÃüÁîÐУ¬¿ÉÒÔÒ»ÐÐÒ»ÐеÄÅäÖá£
£²£©make menuconfig£º¿ª·¢ÈËÔ±±È½ÏÊìÏ ......