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

ѧϰ±Ê¼Ç Unix/Linux½ø³Ì¼äͨÐÅ

ÃæÊÔʱһÔٵر»Îʵ½½ø³Ì¼äͨÐŵÄÇé¿ö£¬¶øÎÒµÄÀí½âһֱͣÁôÔÚ¸ÅÄîÉϺÍÃû´ÊÉÏ£¬±ØÐëÒª×öµãʵÑé¼ÓÉîÀí½â¡£
IPC:Interprocess communication¡£ÓÐЩIPCµÄ·½·¨²»½ö¿ÉÒÔÓÃÓÚÏàͬÖ÷»ú£¬Ò²¿ÉÒÔÓÃÓÚ²»Í¬Ö÷»ú£¬ÈçsocketsºÍSTREAMS¡£
¾­µäIPCÖ®Ò»£ºpipes(¹ÜµÀ)
,ʹÓÃ×î¹ã·º£¬¾ßÓÐÇ×Ôµ¹ØÏµ
µÄ½ø³Ì¼ä²ÅÄÜʹÓùܵÀ½øÐÐIPC¡£
ʹÓÃÁ˹ܵÀµÄÀý×Ó£ºls -a | grep "jun"
×Ô¼ºµÄ³ÌÐòÖÐʹÓùܵÀµÄ·½·¨£º¸¸½ø³Ì´´½¨pipe£¬È»ºófork×Ó½ø³Ì£¬Õâʱ¸¸×Ó½ø³Ìͨ¹ýpipe½øÐÐͨÐÅÁË¡£
Àý×Ó´úÂ룺(ΪÁËץס֨µã£¬É¾³ýÁË´¦Àí´íÎóµÄ´úÂë)
int main()
{
    int fd[2]; //¹ÜµÀÊÇÒ»ÖÖÎļþ£¬ÓÐread¶ËºÍwrite¶Ë£¬ÒªÓõ½Á½¸öfile descriptor
    pipe(fd); //´´½¨¹ÜµÀ
    pid = fork();
    if (pid > 0) { //¸¸½ø³Ì
       close(fd[0]); //fd[0]ÊÇread¶Ë£¬fd[1]ÊÇwrite¶Ë£¬ÕâÀï¹Ø±Õread¶Ë¡£close()ÊÇFile I/OµÄAPI¡£
       write(fd[1], ”hello pipe\n",  11); //ͨ¹ýwrite¶Ë£¬Ð´ÈëÊý¾Ý¡£write()ÊÇFile I/OµÄAPI¡£
    }
    else {  //×Ó½ø³Ì
       close(fd[1]); //¹Ø±Õwrite¶Ë
       int n = read(fd[0], buf, MAX_SIZE);
       write(1, buf, n); //ÕûÊý1£¬ÔÚÎÒËùÖªµÀµÄ²Ù×÷ϵͳµÄʵÏÖÖÐÊDZê×¼Êä³öµÄFile descriptor
    }
    exit(0);
}
³ÌÐò´úÂëÖÐʹÓùܵÀµÄÌ×·һ°ãÊÇ£ºpipe;fork;exec*£¬²Ù×÷ϵͳÓÖÌṩÁËpopenºÍpcloseº¯ÊýÕûºÏÓйعܵÀµÄº¯Êý£¬Ê¹µÃ¿ÉÒÔÔÚ×Ô¼ºµÄ³ÌÐòÖÐÓøüÉٵĴúÂëʵÏֹܵÀ¡£
¾­µäIPCÖ®¶þ£ºFIFOs, FIFOs are sometimes called named pipes(ÓÐÃû¹ÜµÀ)¡£Í»ÆÆÁËÖ»ÄÜÔÚÏà¹Ø½ø³Ì¼äʹÓõÄÏÞÖÆ.
d
²¹£ºÃæÊÔʱÎҲ²⹲ÏíÎļþÊÇÒ»ÖÖIPC£¬Õâ¸ö²»¶Ô¡£ÎÒÒòΪ¶Ô¹²ÏíÄÚ´æÃ»¼ÇÀο¿£¬ËùÒÔ»á²Â²âµ½¹²ÏíÎļþÊÇÒ»ÖÖIPC¡£


Ïà¹ØÎĵµ£º

LinuxÄÚºËÅäÖÃÎĵµ(make menuconfig)

Ò»¡¢ÒýÑÔ£º
    ±¾ÎĵµµÄÄÚÈݴ󲿷ÝÄÚÈݶ¼ÊÇ´ÓÍøÉÏÊÕ¼¯¶øÀ´£¬È»ºóÅäºÏһЩеĽØÍ¼£¨Äں˰汾£ºV2.4.19£©¡£ÔÚÿһÅäÖÃÏîºó»áÓÐÒ»¸öÑ¡ÔñÖ¸ÄϵIJ¿·Ý£¬ÓÃÀ´Ö¸µ¼´ó¼ÒÔõôÑù¸ù¾Ý×Ô¼ºµÄÇé¿öÀ´×öÏàÓ¦µÄÑ¡Ôñ£»»¹ÓÐÔÚÿһ¸ö´óÏîºÍÎĵµµÄ×îºó»áÓÐÒ»¸ö¾­Ñé̸£¬ËüÊÇһЩ¸ßÊÖÃÇÔÚÓ¦¶ÔÎÊÌâºÍ´¦ÀíÌØÓÐÓ²¼þʱµÄһЩ¾­Ñ飨Õâ¸ö»¹µ ......

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


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

Linux ¶àÏ̱߳à³Ì

linux ¶àÏ̱߳à³Ì·Ç³£¼òµ¥¡£
Ò»¡¢¶àÏ̱߳à³ÌµÄÁ÷³Ì£º
´´½¨Ïß³Ì--->µ±Ç°Ï̼߳ÌÐø¹¤×÷--->£ÛÓë´´½¨µÄÏß³Ìͬ²½£Ý--->£ÛµÈ´ý´´½¨µÄÏ߳̽áÊøÓë·µ»Ø£Ý--->µ±Ç°Ï̼߳ÌÐø¹¤×÷¡£
            --->´´½¨µÄÏ߳̿ªÊ¼¹¤×÷--->£ÛÓë±ðµÄÏß³Ìͬ²½£Ý---> ......

linuxÄÚºËregister_chrdev_region()ϵÁк¯Êý

ÄÚºËÖÐËùÓÐÒÑ·ÖÅäµÄ×Ö·ûÉ豸±àºÅ¶¼¼Ç¼ÔÚÒ»¸öÃûΪ chrdevs É¢ÁбíÀï¡£¸ÃÉ¢ÁбíÖеÄÿһ¸öÔªËØÊÇÒ»¸ö char_device_struct ½á¹¹£¬ËüµÄ¶¨ÒåÈçÏ£º
   static struct char_device_struct {
       struct char_device_struct *next;    // Ö¸ÏòÉ¢ÁгåÍ»Á´±íÖеÄÏÂÒ»¸öÔªËØ ......

linux ±¸Íü¼һ

½ñÌìѧµ½µÄ¶«¶«£º
1¡¢²é¿´½ø³ÌËù¶ÔÓ¦¿ÉÖ´ÐгÌÐòµÄ¾ø¶Ô·¾¶
[1].   ps -ef | grep ½ø³ÌÃû   »ñµÃPID
[2].   ½øÈëprocÎļþϵͳÀï¶ÔÓ¦µÄĿ¼£º/proc/ <PID>
[3].   ls   -l
      exeÁ´½Ó¶ÔÓ¦µÄ¾ÍÊÇ¿ÉÖ´ÐÐÎļþµÄȫ·¾­
   ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ