LinuxÒÁµéÔ°ÂÛ̳'s Archiver

wyy0824 ·¢±íÓÚ 2006-11-3 09:18

¡¾ÐÂÊÖÇóÖú¡¿¹ØÓÚ´´½¨¹²ÏíÄÚ´æµÄÒ»Ìâ

ÌâÄ¿:qH/RZv
  ½¨Á¢¹²ÏíÄÚ´æ
-E+zdxmnVY   ¹²ÏíÄÚ´æ´óС:64¸öchar
D#oi!mt3@T-Snf   Í¨¹ý¸ø³ÌÐò´ø²ÎÊý¶Ô¹²ÏíÄÚ´æ½øÐвÙ×÷
0_ @1Es W e,x9J   ÀýÈç: ³ÌÐòÃû oo
O m;AM3iO4m   oo c ½¨Á¢¹²ÏíÄÚ´æE3X9x Jsy
  oo r ÏÔʾ¹²ÏíÄÚ´æÄÚÈÝ
AgS"|O2T+M)U!l9J8v   oo w ×Ö·û´® ½«Öƶ¨×Ö·û´®Ð´Èë¹²ÏíÄÚ´æ+pv:cLt6y"T V
  oo d ɾ³ý¹²ÏíÄÚ´æP-N:I?nJ6@
  A%a$\ id)G
  ÎÒÊǸö³õѧÕß,Ë­Äܰï°ïÎÒ??²»Ê¤¸Ð¼¤:(

wyy0824 ·¢±íÓÚ 2006-11-7 15:20

#include <sys/types.h>
.f(gt C(f!IO #include <stdio.h>
:Fu z:k/uKYe #include <sys/ipc.h>
zEz$w k6k-TS#K #include <sys/shm.h>m-C(xR4s1Z
-Zl6ID!r)@B R4c
int main (int argc,char *argv[])
0s!N/k3BER1zX {
ux3xW-`!G l*y         int shm_id;r RmW*YS@4D r
        key_t key;n3An/RI8r[
        int size;Im(p4n:{ D7V8v@-l
        char *shm_addr,*head,*ptr,data[64],*str;
&q1D$`!mm         *_b4r!H`Z?9S/bwR
        size=sizeof (char) * 64;JaMEU(ki
        switch (*argv[1])Z_4F&u{{P]b
        {
h([\&{1q"W'x                 case 'c':/klp }t3g }"]Id
                                        key = ftok("/work/oo",0);
,|R{Fhw                                         shm_id = shmget (key,size,IPC_CREAT|0660);
f|(a9{r                                         if (shm_id==-1)*?Rjb3TBl
                                        {
F| a!F!w9M3_                                                 return (-1);9PU:r7e:j!Y
                                        }
Zp&ds0x n+E                                         elseC d]?jf
                                            printf ("the shm_id is %d\n",shm_id);
^sEQm1w#I]$\                                         break;
cL"folX                 case 'r':#bjok/OjK
                                        6c qW#]J;O1W1M6K
                                       
G)`su/g4m}`5XqD%s*B                                         printf ("%s\n",data);
2p/zp3b{_                                        
3DBrO!o                                         break;D f^z:o5kN?
                case 'w':2K^fq)oEeaz
                                        %v+j.{"lw`~h+r
                                        shm_addr = shmat (shm_id,0,0);
X{|H\o%oy                                         shm_addr = data;
]&rUQ\/d                                         while(*argv[2]!='\0')q!_ W9`Ag!R
                                        { LkL?#g;Z F
                                                *shm_addr = *argv[2];
dh1VC ai5i4e0a                                                 shm_addr++;[ Pr/a$^(PJ
                                                argv[2]++;
qb0o6^OEB B                                         }
J3Y8g'm)@$AE,D                                         )bCk Rx
                                        printf("%s\n",data);"LnI:m`2t\9ic#c
                                        break;!C6a ~s4{n&{)w
                case 'd'::~ g)@!bj];Jb]
                                        shmctl(shm_id,IPC_RMID,0);+R7a i1i!^i
                                        break;~],vZ-zt-F0^]
                default : printf("error\n");
k!WLU}         }       
k9no?[ }7r4qq-r,r_p

A(B}j"G
6_!_2fT;p@5n ÎÒ×Ô¼ºÐ´µÄ,Ϊʲô×Ö·û´®´æ²»Èë¹²ÏíÄÚ´æÖÐÄØ??¸ßÊÖ½â´ðÏÂ

flag ·¢±íÓÚ 2006-11-7 16:14

ºÃºÃÓÃman¿´¿´ftokµÄº¯ÊýÓ÷¨¡£

Ò³: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.