shmget(2)
ÃÑ ÆäÀÌÁö ¼ö : 3224

Àüü ÇÔ¼ö/¿ë¾î»çÀü
Facebook Joinc ±×·ì   Joinc QA »çÀÌÆ®
ÇöÀçÀ§Ä¡ : docbook>shmget(2)



joinc´Â Firefox¿Í chrome¿¡¼­ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼­´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù.
HTML º¯È¯¹®¼­

<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook V4.1//EN"> 
<chapter lang=ko> 
<!-- ÀÛ¼ºÀÚ : yundream             --> 
<!-- ÀÛ¼ºÀÏ : 2004/06/04           --> 
<!-- ¿¬¶ôó : yundream@joinc.co.kr --> 
 
<!-- ÇÔ¼ö À̸§À» ÀÔ·ÂÇÕ´Ï´Ù --> 
<title>shmget(2)</title> 
 
<!-- ÀÌ°Ç ÇÔ¼ö¿¡ ´ëÇÑ ´ë·«ÀûÀÎ ¼³¸íÀ̱¸¿ä --> 
<para> 
    °øÀ¯¸Þ¸ð¸® ¿µ¿ªÀ» ÇÒ´çÇÑ´Ù. 
</para> 
  
<!-- ¿©±â¿¡ ÇÔ¼öÀÇ °£´ÜÇÑ »ç¿ë¹ýÀÌ µé¾î°©´Ï´Ù --> 
<section> 
    <title>»ç¿ë¹ý</title> 
    <para> 
        <screen> 
#include <sys/ipc.h> 
#include <sys/shm.h> 
 
int shmget(key_t key, size_t size, int shmflg); 
        </screen> 
    </para> 
</section> 
 
<!-- ¿©±â¿£ ÇÔ¼öÀÇ ÀÚ¼¼ÇÑ ¼³¸í ÀÌ µé¾î°©´Ï´Ù --> 
<section> 
    <title>¼³¸í</title> 
    <para> 
        shmget()Àº ÁÖ¾îÁø ÀÎÀÚ <emphasis>key</emphasis>¸¦ Á¢±Ù¹øÈ£·Î ÇÏ´Â  
        °øÀ¯¸Þ¸ð¸® °ø°£ÇÒ´çÀ» Ä¿³Î¿¡ ¿äûÇÑ´Ù. Ä¿³Î¿¡¼­ ¼º°øÀûÀ¸·Î °øÀ¯¸Þ¸ð¸®  
        °ø°£À» ÇÒ´çÇÏ°Ô µÇ¸é °øÀ¯¸Þ¸ð¸®¸¦ °¡¸£Å°´Â ½Äº°ÀÚ¸¦ ¸®ÅÏÇÏ°Ô µÈ´Ù. 
        »ý¼ºµÉ °øÀ¯¸Þ¸ð¸® °ø°£ÀÇ Å©±â´Â <emphasis>size</emphasis>¸¦ ÅëÇØ¼­  
        byte ´ÜÀ§ Å©±â·Î ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù. °ø°£ÀÇ ÇÒ´çÀº  
        <emphasis>shmflg</emphasis>°¡ IPC_PRIVATEÀ̰ųª <emphasis>key</emphasis> 
        ¸¦ °¡Áö´Â °øÀ¯¸Þ¸ð¸®¿µ¿ªÀÌ Á¸ÀçÇÏÁö ¾Ê°Å³ª, IPC_CREAT°¡ ÁöÁ¤µÇ¾úÀ» °æ¿ì 
        (shmflg&IPC_CREAT°¡ 0ÀÌ ¾Æ´Ñ)¿¡ ÀÌ·ç¾îÁø´Ù. 
    </para> 
    <para> 
        ´ÙÀ½Àº »ç¿ë°¡´ÉÇÑ <emphasis>shmflg</emphasis>°ªµéÀÌ´Ù.     
        <variablelist>     
            <varlistentry> 
            <term>IPC_CREAT</term>     
            <listitem> 
                <para> 
                »õ·Î¿î ¿µ¿ªÀ» ÇÒ´çÇÑ´Ù. ¸¸¾à ÀÌ °ªÀÌ »ç¿ëµÇÁö ¾Ê¾Ò´Ù¸é,  
                shmget()Àº <emphasis>key</emphasis>·Î ÀÌ¹Ì »ý¼ºµÈ Á¢±Ù °¡´ÉÇÑ  
                °øÀ¯¸Þ¸ð¸® ¿µ¿ªÀÌ ÀÖ´ÂÁö È®ÀÎÇϰí ÀÌ¿¡ ´ëÇÑ ½Äº°ÀÚ¸¦  
                µÇµ¹·ÁÁÙ °ÍÀÌ´Ù. 
                </para>     
            </listitem> 
            </varlistentry> 
            <varlistentry> 
            <term>IPC_EXCL</term>     
            <listitem> 
                <para> 
                IPC_CREAT¿Í ÇÔ²² »ç¿ëÇÏ¸ç °øÀ¯¸Þ¸ð¸® ¿µ¿ªÀÌ ÀÌ¹Ì Á¸ÀçÇÏ¸é ¿¡·¯¸¦ 
                ¸®ÅÏÇÑ´Ù. 
                </para>     
            </listitem> 
            </varlistentry> 
            <varlistentry> 
            <term>mode_flags(ÇÏÀ§ 9bit)</term>     
            <listitem> 
                <para> 
                Á¢±Ù ±ÇÇÑÀÇ ÁöÁ¤À» À§Çؼ­ »ç¿ëÇÑ´Ù. ½ÇÇà±ÇÇÑÀº »ç¿ëÇÏÁö ¾Ê´Â´Ù. 
                </para>     
            </listitem> 
            </varlistentry> 
        </variablelist>     
    </para> 
    <para> 
        ¸¸¾à »õ·Î¿î ¿µ¿ªÀÌ »ý¼ºµÇ¾ú´Ù¸é shmflgÀÇ ±ÇÇÑÁ¤º¸´Â ¿µ¿ª¿¡ ´ëÇÑ Á¤º¸°¡ 
        Á¤ÀǵǾî ÀÖ´Â shmid_ds ±¸Á¶Ã¼ÀÇ ¸â¹öÀÎ shm_permÀ¸·Î º¹»çµÈ´Ù. shmid_ds 
        ±¸Á¶Ã¼´Â ¾Æ·¡¿Í °°ÀÌ Á¤ÀǵǾî ÀÖ´Ù.     
        <screen> 
struct shmid_ds { 
    struct ipc_perm shm_perm;    /* operation perms */ 
    int             shm_segsz;   /* size of segment (bytes) */ 
    time_t          shm_atime;   /* last attach time */ 
    time_t          shm_dtime;   /* last detach time */ 
    time_t          shm_ctime;   /* last change time */ 
    unsigned short  shm_cpid;    /* pid of creator */ 
    unsigned short  shm_lpid;    /* pid of last operator */ 
    short           shm_nattch;  /* no. of current attaches */ 
}; 
 
struct ipc_perm { 
    key_t  key; 
    ushort uid;   /* owner euid and egid */ 
    ushort gid; 
    ushort cuid;  /* creator euid and egid */ 
    ushort cgid; 
    ushort mode;  /* lower 9 bits of shmflg */ 
    ushort seq;   /* sequence number */ 
}; 
        </screen> 
        ¸¸¾à °øÀ¯ ¸Þ¸ð¸® ¿µ¿ªÀÌ ÀÌ¹Ì Á¸ÀçÇÑ´Ù¸é Á¢±Ù±ÇÇÑÀº ¼öÁ¤µÈ´Ù.  
    </para> 
</section> 
<section> 
    <title>½Ã½ºÅÛ È£Ãâ¿¡ ´ëÇÑ ¹ÝÀÀ</title> 
    <para> 
        <variablelist> 
            <varlistentry> 
            <term>fork()</term> 
            <listitem> 
                <para> 
                    attacheµÈ °øÀ¯ ¸Þ¸ð¸® °ø°£Àº ÀÚ½Ä ÇÁ·Î¼¼½º¿¡°Ô »ó¼ÓµÈ´Ù.  
                </para>     
            </listitem> 
            </varlistentry> 
            <varlistentry> 
            <term>exec()</term> 
            <listitem> 
                <para> 
                    exec()°¡ È£ÃâµÈ ÈÄ¿¡´Â ¸ðµç °øÀ¯ ¸Þ¸ð¸® °ø°£Àº detacheµÈ´Ù. 
                </para>     
            </listitem> 
            </varlistentry> 
            <varlistentry> 
            <term>exit()</term> 
            <listitem> 
                <para> 
                    exit()ÈÄ ¸ðµç °øÀ¯ ¸Þ¸ð¸® °ø°£Àº detacheµÈ´Ù 
                    (¾ø¾î ÁöÁö´Â ¾Ê´Â´Ù).  
                </para>     
            </listitem> 
            </varlistentry> 
        </variablelist>     
    </para> 
</section> 
 
<!-- ÇÔ¼ö°¡ µÇµ¹·ÁÁÖ´Â °ªÀ̱¸¿ä --> 
<section> 
    <title>¹Ýȯ°ª</title> 
    <para> 
        ¼º°øÇϸé <emphasis>shmid</emphasis>¸¦ ¹Ýȯ, ½ÇÆÐÇϸé -1À» ¹ÝȯÇÑ´Ù.  
    </para> 
</section> 
 
<!-- ¿¡·¯°¡ ¹ß»ýÇßÀ»¶§ µÇµ¹·ÁÁÖ´Â °ªµéÀÔ´Ï´Ù --> 
<section> 
    <title>¿¡·¯</title> 
    <para> 
        <variablelist>     
            <varlistentry> 
            <term>EINVAL</term>     
            <listitem> 
                <para>     
                °øÀ¯ ¿µ¿ª»ý¼º½Ã ³Ê¹« ÀÛÀº °ø°£À» ÇÒ´ç Çϰųª(<emphasis>size < SHMMIN</emphasis>) 
                ³Ê¹« Å« °ø°£(<emphasis>size > SHMMAX</emphasis>)À» ÇÒ´çÇßÀ»  
                °æ¿ì 
                </para>     
            </listitem> 
            </varlistentry> 
            <varlistentry> 
            <term>EEXIST</term>     
            <listitem> 
                <para>     
                </para>     
            </listitem> 
            </varlistentry> 
            <varlistentry> 
            <term>EACCESS</term>     
            <listitem> 
                <para>     
                IPC_CREAT | IPC_EXCL ·Î »ý¼ºÀ» ¿äûÇߴµ¥, ÀÌ¹Ì °øÀ¯ ¸Þ¸ð¸®  
                ¿µ¿ªÀÌ Á¸ÀçÇϰí ÀÖÀ» °æ¿ì, 
                </para>     
            </listitem> 
            </varlistentry> 
            <varlistentry> 
            <term>ENOSPC</term>     
            <listitem> 
                <para>     
                <emphasis>size</emphasis>¸¸Å­ÀÇ °ø°£À» ÇÒ´çÇÒ ¼ö ¾øÀ» °æ¿ì.  
                »ç¿ë°¡´ÉÇÑ °ø°£Àº SHMALL°ªÀ¸·Î Ä¿³ÎÀü¿ªÀûÀ¸·Î Á¤ÀǵǾî ÀÖ´Ù. 
                (/usr/include/linux/shm.h Âü°í)     
                </para>     
            </listitem> 
            </varlistentry> 
            <varlistentry> 
            <term>ENOENT</term>     
            <listitem> 
                <para>     
                IPC_CREAT¸¦ »ç¿ëÇÏÁö ¾Ê¾Ò´Âµ¥, ÇØ´ç <emphasis>key</emphasis>¸¦ 
                °¡Áö´Â °øÀ¯ ¸Þ¸ð¸® ¿µ¿ªÀÌ Á¸Àç ÇÏÁö ¾Ê´Â °æ¿ì  
                </para>     
            </listitem> 
            </varlistentry> 
            <varlistentry> 
            <term>EACCESS</term>     
            <listitem> 
                <para>     
                °øÀ¯ ¸Þ¸ð¸® ¿µ¿ª¿¡ ´ëÇÑ Á¢±Ù±ÇÇÑÀÌ ÁÖ¾îÁ® ÀÖÁö ¾Ê´Ù. 
                </para>     
            </listitem> 
            </varlistentry> 
            <varlistentry> 
            <term>ENOMEM</term>     
            <listitem> 
                <para>     
                ÀÌ¿ëÇÒ ¼ö ÀÖ´Â Ä¿³Î ¸Þ¸ð¸®°¡ ÃæºÐÇÏÁö ¾Ê´Ù. 
                </para>     
            </listitem> 
            </varlistentry> 
        </variablelist>     
    </para> 
</section> 
 
<!-- ¸¶Áö¸·À¸·Î ¿¡Á¦ ÀÔ´Ï´Ù                                                 --> 
<!-- ¿©±â¿¡´Â ¿ÏÀüÇÑ ¿¹Á¦°¡ µé¾î°¡ Àִµ¥, ±»ÀÌ ¿ÏÀüÇÑ ¿¹Á¦¸¦ ¸¸µéÇÊ¿ä ¾øÀÌ --> 
<!-- ÄÚµå ÀϺκи¸ ÀÛ¼ºÇؼ­ ¿Ã·ÁÁּŵµ µË´Ï´Ù                               -->  
<!-- "<", ">", "&" µîÀº º¯È¯ÇØ ÁÖ¼Å¾ß Çϴµ¥, ±ÍÂúÀ¸½Ã¸é :-) º¯È¯ ÇÏÁö ¾Ê   --> 
<!-- ¾Æµµ µË´Ï´Ù. Á¦°¡ °Ë»ç ÇØ¼­ ¿Ã¸®°Ú½À´Ï´Ù                               --> 
<!-- ¿¹Á¦¿¡ ´ëÇÑ °£´ÜÇÑ ¼³¸íÀ» Àû¾îÁּŵµ µÇ±¸¿ä                            --> 
<section> 
    <title>¿¹Á¦</title> 
    <para> 
    <ulink url="http://www.joinc.co.kr/modules/moniwiki/wiki.php/article_°øÀ¯¸Þ¸ð¸®ÀÇ_»ç¿ë">°øÀ¯ ¸Þ¸ð¸®</ulink>Âü°í 
    </para> 
</section> 
<section> 
    <title>Âü°í¹®Çå</title> 
    <para> 
        <orderedlist> 
        <listitem> 
            <para> 
            <ulink url="http://www.joinc.co.kr/modules/moniwiki/wiki.php/article_°øÀ¯¸Þ¸ð¸®¿Í_¼¼¸¶Æ÷¾î¸¦_ÀÌ¿ëÇÑ_ÇÁ·Î¼¼½º°£_µ¥ÀÌÅÍó¸®">°øÀ¯ ¸Þ¸ð¸®¸¦ ÀÌ¿ëÇÑ ÇÁ·Î¼¼½º°£ µ¥ÀÌÅÍ ±³È¯</ulink> 
            </para> 
         
        </listitem> 
        <listitem> 
            <para> 
            ftok(3) 
            </para> 
        </listitem> 
        <listitem> 
            <para> 
            ipc(5)             
            </para> 
        </listitem> 
        <listitem> 
            <para> 
            shmctl(2) 
            </para> 
        </listitem> 
        <listitem> 
            <para> 
            shmat(2) 
            </para> 
        </listitem> 
        <listitem> 
            <para> 
            shmdt(2) 
            </para> 
        </listitem> 
        </orderedlist> 
    </para> 
</section> 
</chapter> 
 
EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù.