¼±£¡Çó½Ì¹ØÓÚ¹²ÓÐÄÚ´æµÄÎÊÌâ
ÎÒÊÇÒ»¸ölinuxµÄ³õѧÕߣ¬¿´µ½Ò»¸öÌâÄ¿£¬ÊǹØÓÚÒ»¸öÖ÷³ÌÐò¿ª±ÙÁËÒ»¿é¹²ÓÐÄڴ棬ÉèÖÃÁËÒ»¸öÊôÐÔΪindex=1¡£ÏÖÔÚÖ÷³ÌÐòÉú³ÉÁËÁ½¸ö×Ó½ø³Ì£¬×Ó½ø³Ì1·ÃÎʹ²ÓÐÄڴ棬µ±index=1ʱ£¬¾Í°Ñindex´Ó1Ò»Ö±¸Äµ½5£¬¶ø×Ó½ø³Ì2·ÃÎʹ²ÓÐÄڴ棬µ±index=5ʱ£¬¾Í°Ñindex´Ó5¸Äµ½10£¬Ö÷³ÌÐò¿´µ½index=11ʱ¾ÍÍ˳ö£¬Ïú»Ù¹²ÓÐÄÚ´æ¡£Çë½Ì¸÷λ´óϺ£¬Õâ¸ö¸ÄÈçºÎʵÏÖ°¡£¿¸Ð¼¤ing~~~~~»¹ÓÐÒ»¸öÒªÇóÊÇ2¸ö×Ó½ø³ÌÒªÉú³É¿ÉÖ´ÐгÌÐòºó£¬²ÅÓÃÖ÷½ø³ÌÆô¶¯È»ºóÖ÷½ø³ÌÓë×Ó½ø³ÌÖ®¼ä£¬¶Ô¹²ÓÐÄÚ´æ½øÐл¥¶¯²Ù×÷ #define MAIL_SHM_KEY_MAILSEND (key_t)0x8000 typedef struct Shared_Memory{ int index;}SHARED_MEMORY;int main( int argc, char *argv[] )
{B&z[dx(h8^FU"u t
SHARED_MEMORY *mSharedMemory = NULL;fN8p%V:cFV)}
struct shmid_ds *shm_ds = NULL;
int mShmId = 0; Nbsu1tlr
8Z S:D4`^8|.rkC
mShmId = shmget(MAIL_SHM_KEY_MAILSEND,sizeof( MAIL_SEND_SET_ST ), 0777 | IPC_CREAT );!LKN7}s-L
if ( mShmId == -1 )Q5E-`*P&[F
mShmId = shmget( MAIL_SHM_KEY_MAILSEND, 0, 0777 );.ph/ZO|(i
if( mShmId == -1 ){.Pw%R&@R IAm
return 1;MMq{iE/bA
}v gVI_
aSubRet = shmctl( mShmId, IPC_RMID, shm_ds );7hL QD3g @N:c7D
if( aSubRet == -1 ){
return 1;
}
mShmId = shmget( (key_t)MAIL_SHM_KEY_MAILSEND, sizeof(MAIL_SEND_SET_ST), 0777 | IPC_CREAT);/{'_4U ~7`%_
if( mShmId == -1 ){Z i`K6tHV |
return 1;
}
} @D%_r0Hk3N `%p*A
mSharedMemory = (MAIL_SEND_SET_ST*)shmat(mShmId, (void *)0, 0);
if( (ADDR)mSharedMemory <= 0 )+q x[%L.N.LglF
{OQx a@8Gz
return 1;
}5L!};qI.jg3|M*ur-i1K
memset( mSharedMemory, 0, sizeof(MAIL_SEND_SET_ST) );
*{M:V(Q1t$z8S]
mSharedMemory->index = 1;
execv("subProc1", );Ma&M5T%hW UO_
printf("SubProc1 Start\n");
execv("subProc2", );
printf("SubProc2 Start\n");
printf("End Main Proc\n");`'T z _0\*H8|
while( 1 )
{z7S(~mk&t5F
}
r*FH"|7NS E
}
Õâ¶Î´úÂë¸ÄÈçºÎÍêÉÆ°¡£¿ #define MAIL_SHM_KEY_MAILSEND (key_t)0x8000
iu(b&a[2Ze6Z
typedef struct Shared_Memory{
int index;
}SHARED_MEMORY;
int main( int argc, char *argv[] ):h\9Kk+Q-v!y#~H1k
{
SHARED_MEMORY *mSharedMemory = NULL;
struct shmid_ds *shm_ds = NULL;,X5r@!^Kw6BjB
int mShmId = 0; 9y-xV~/Z1L