锘??xml version="1.0" encoding="utf-8" standalone="yes"?>久热精品视频在线,在线成人av,欧美日韩高清区http://m.shnenglu.com/Marcky/category/11045.htmlMy Email: marckywu@gmail.comzh-cnSun, 23 Aug 2009 05:00:16 GMTSun, 23 Aug 2009 05:00:16 GMT60system V IPC 鈥斺?鍏變韓鍐呭瓨(涓?http://m.shnenglu.com/Marcky/archive/2009/08/20/93911.htmlMarckyMarckyThu, 20 Aug 2009 06:57:00 GMThttp://m.shnenglu.com/Marcky/archive/2009/08/20/93911.htmlhttp://m.shnenglu.com/Marcky/comments/93911.htmlhttp://m.shnenglu.com/Marcky/archive/2009/08/20/93911.html#Feedback0http://m.shnenglu.com/Marcky/comments/commentRss/93911.htmlhttp://m.shnenglu.com/Marcky/services/trackbacks/93911.html
浠g爜濡備笅錛?br>
#include <stdio.h>
#include 
<stdlib.h>
#include 
<string.h>

#include 
<unistd.h>
#include 
<sys/types.h>

#include 
<sys/wait.h>
#include 
<fcntl.h>

#include 
<sys/ipc.h>
#include 
<sys/shm.h>

#define SHM_SIZE 1024            /* shared memory size(bytes) */
#define SHM_MODE 0600            /* user read/write */

#define WRITE_LOCK(fd) regLock((fd), F_SETLKW, F_WRLCK, 0, SEEK_SET, 0) 
#define UN_LOCK(fd) regLock((fd), F_SETLK, F_UNLCK, 0, SEEK_SET, 0) 
/* 鍒涘緩涓涓枃浠?nbsp;*/
int createFile()
{
    
int fd;

    
if ( (fd = open("/tmp/emptyfile4shm", O_RDWR | O_CREAT, 0666)) < 0) {
        fprintf(stderr, 
"Create a empty file failed!\n");
        exit(EXIT_FAILURE);
    }

    
return fd;
}
/* 鍦ㄦ枃浠秄d涓婂姞閿佹垨瑙i攣*/
int regLock(int fd, int cmd, int type, off_t offset, int whence, off_t len)
{
    
struct flock lock;

    
lock.l_type = type;         /* lock type: F_RDLCK, F_WRLCK, F_UNLCK */
    
lock.l_start = offset;      /* byte offset relative to l_whence */
    
lock.l_whence = whence;    /* it's value : SEEK_SET, SEEK_CUR, SEEK_END */
    
lock.l_len = len;           /* bytes (0 means to EOF) */

    
return fcntl(fd, cmd, &lock);
}

int main(void)
{
    
int shmid;
    
int filed;
    pid_t pid;
    
char *shmptr = NULL;

    filed 
= createFile();

    
if ( (shmid = shmget(IPC_PRIVATE, SHM_SIZE, SHM_MODE)) < 0) { /* Create shared memory */
        fprintf(stderr, 
"Create shared memory failed!\n");
        exit(EXIT_FAILURE);
    }

    
if ( (pid = fork()) < 0) {  /* Create a child process */
        fprintf(stderr, 
"Create child process failed!\n");
        exit(EXIT_FAILURE);
    }

    
if (pid == 0) {             /* In child process */
        
if ( (shmptr = shmat(shmid, 00)) == (void *)-1) {
            fprintf(stderr, 
"Attached shared memory failed!\n");
            exit(EXIT_FAILURE);
        }
        
while (1) {
            WRITE_LOCK(filed);  
/* add a write lock to filed */
            
/* shared memory 鍓╀綑鐨勭┖闂翠笉鑳藉瓨鍌?Child"瀛楃涓插拰緇撴潫絎?鏃跺氨閫鍑哄驚鐜?nbsp;*/
            
if (SHM_SIZE - strlen(shmptr) < strlen("Child"+ 1break
            strcat(shmptr, 
"C"); /* 鐢變簬鍔犱簡閿侊紝姣忎釜Child灝嗕細榪炵畫鍑虹幇 */
            strcat(shmptr, 
"h");
            strcat(shmptr, 
"i");
            strcat(shmptr, 
"l");
            strcat(shmptr, 
"d");
            UN_LOCK(filed);     
/* release lock */
        }
        printf(
"child process:\n\t%s\n", shmptr); /* child process print shared memory */
            
        exit(
0);
    }

    
/* In parent process */
    
if ( (shmptr = shmat(shmid, 00)) == (void *)-1) { /* Attached shared memory */
        fprintf(stderr, 
"Attached shared memory failed!\n");
        exit(EXIT_FAILURE);
    }
    
    
while (1) {
        WRITE_LOCK(filed);
        
/* shared memory 鍓╀綑鐨勭┖闂翠笉鑳藉瓨鍌?Parent"瀛楃涓插拰緇撴潫絎?鏃跺氨閫鍑哄驚鐜?nbsp;*/
        
if (SHM_SIZE - strlen(shmptr) < strlen("Parent"+ 1break;
        strcat(shmptr, 
"P");/* 鐢變簬鍔犱簡閿侊紝姣忎釜Parent灝嗕細榪炵畫鍑虹幇 */
        strcat(shmptr, 
"a");
        strcat(shmptr, 
"r");
        strcat(shmptr, 
"e");
        strcat(shmptr, 
"n");
        strcat(shmptr, 
"t");
        UN_LOCK(filed);
    }
    printf(
"parent process:\n\t%s\n", shmptr); /* parent print shared memory */

    wait(
0);
    exit(
0);
}
    
            
    
    




Marcky 2009-08-20 14:57 鍙戣〃璇勮
]]>
system V IPC 鈥斺?鍏變韓鍐呭瓨(涓?http://m.shnenglu.com/Marcky/archive/2009/08/20/93909.htmlMarckyMarckyThu, 20 Aug 2009 06:48:00 GMThttp://m.shnenglu.com/Marcky/archive/2009/08/20/93909.htmlhttp://m.shnenglu.com/Marcky/comments/93909.htmlhttp://m.shnenglu.com/Marcky/archive/2009/08/20/93909.html#Feedback0http://m.shnenglu.com/Marcky/comments/commentRss/93909.htmlhttp://m.shnenglu.com/Marcky/services/trackbacks/93909.html
linux鍐呮牳瀹氫箟鐨剆hared memory緇撴瀯shmid_ds濡備笅錛?br>
struct shmid_ds {
    
struct ipc_perm  shm_perm;  /*鏉冮檺*/
    size_t           shm_segsz; 
/*澶у皬*/
    pid_t            shm_lpid;  
    pid_t            shm_cpid;  
/*鍒涘緩鑰卲id*/
    shmatt_t         shm_nattch;
/*榪炴帴鍒版孌靛唴瀛樼殑榪涚▼鏁?/span>*/
    time_t           shm_atime;
    time_t           shm_dtime;
    time_t           shm_ctime;
    
};

1銆佸垱寤烘垨浣跨敤涓孌靛叡浜唴瀛樹嬌鐢╯hmget鍑芥暟錛屾鍑芥暟灝嗚繑鍥炲叡浜唴瀛樻爣紺虹銆?br>
#include <sys/shm.h>
int shmget(key_t key, size_t size, int flag);
濡傛灉key鍙栧間負IPC_PRIVATE鎴栬卥ey褰撳墠涓哄拰鐗瑰畾綾誨瀷鐨処PC緇撴瀯鐩哥粨鍚堬紝騫朵笖flag鎸囧畾浜咺PC_CREAT浣嶏紝鍒欏垱寤轟竴涓柊鐨剆hare memory緇撴瀯銆?br>size涓哄叡浜唴瀛樻鐨勯暱搴︼紙瀛楄妭錛夈?br>
2銆佸涓涓叡浜唴瀛樻榪涜鎿嶄綔浣跨敤shmctl銆?br>
#include <sys/shm.h>
int shmctl(int shmid, int cmd, struct shmid_ds *buf);
shmid鎸囧畾闇瑕佹搷浣滅殑shared memory
cmd鎸囧畾闇瑕佽繘琛岀殑鎿嶄綔
       IPC_STAT鍙栧緱姝ゆ鐨剆hmid_ds緇撴瀯鏀懼叆buf涓?br>       IPC_SET鐢╞uf鐨勫艱緗孌典腑鐨勶細shm_perm.uid錛宻hm_perm.gid錛宻hm_perm.mode銆?br>       IPC_RMID浠庣郴緇熶腑鍒犻櫎姝ゅ叡浜唴瀛樻銆?br>       SHM_LOCK灝嗗叡浜唴瀛橀攣瀹氬埌鍐呭瓨涓?br>       SHM_UNLOCK瑙i攣鍏變韓鍐呭瓨孌點?br>
3銆佸皢涓涓叡浜唴瀛樻榪炴帴鍒拌嚜宸辯殑鍦板潃絀洪棿浣跨敤shmat錛?br>
#include <sys/shm.h>
void *shmat(int shmid, const void *addr, int flag);
鎺ㄨ崘addr鍙?鍊鹼紝灝嗘孌佃繛鎺ュ埌鍐呮牳閫夋嫨鐨勭涓涓彲鐢ㄧ殑鍦板潃涓娿傚鍔犵▼搴忕殑鍙Щ妞嶆с?br>
4銆佸鍏變韓鍐呭瓨鎿嶄綔緇撴潫鍚庯紝瑕佽劚紱昏孌電敤shmdt錛?br>
#include <sys/shm.h>
int shmdt(void *addr);
addr鏄痵hmat鐨勮繑鍥炲箋?br>


Marcky 2009-08-20 14:48 鍙戣〃璇勮
]]>
Linux鍛戒護:(){ :|:& };:鍒嗘瀽http://m.shnenglu.com/Marcky/archive/2009/06/30/88908.htmlMarckyMarckyTue, 30 Jun 2009 08:46:00 GMThttp://m.shnenglu.com/Marcky/archive/2009/06/30/88908.htmlhttp://m.shnenglu.com/Marcky/comments/88908.htmlhttp://m.shnenglu.com/Marcky/archive/2009/06/30/88908.html#Feedback0http://m.shnenglu.com/Marcky/comments/commentRss/88908.htmlhttp://m.shnenglu.com/Marcky/services/trackbacks/88908.html闃呰鍏ㄦ枃

Marcky 2009-06-30 16:46 鍙戣〃璇勮
]]>
亚洲国产精品嫩草影院久久| 久久综合给合久久狠狠狠97色69| 免费国产99久久久香蕉| 久久香蕉国产线看观看99| 久久综合成人网| 欧美大香线蕉线伊人久久| 91久久福利国产成人精品| 伊人久久亚洲综合影院| 久久精品人成免费| 亚洲一区精品伊人久久伊人 | 亚洲日本va午夜中文字幕久久| 狠狠综合久久AV一区二区三区| 国产福利电影一区二区三区久久久久成人精品综合 | 久久精品国产精品亚洲下载| 综合人妻久久一区二区精品| 91精品国产91久久久久久青草 | 51久久夜色精品国产| 午夜久久久久久禁播电影| 亚洲国产精品成人久久蜜臀| 国产高潮国产高潮久久久91 | 欧美亚洲另类久久综合婷婷 | 久久婷婷五月综合国产尤物app| 久久99精品国产麻豆不卡| 久久精品国产亚洲欧美| 国内精品久久久久| 97久久精品午夜一区二区| 久久久久久人妻无码| 久久影院综合精品| 久久人人爽人人爽人人av东京热| 久久久精品人妻无码专区不卡| 69久久精品无码一区二区| 久久综合九色综合网站| 色综合久久无码五十路人妻| 一本一本久久a久久综合精品蜜桃| 污污内射久久一区二区欧美日韩| 久久成人18免费网站| 久久人人爽人人精品视频| 午夜肉伦伦影院久久精品免费看国产一区二区三区 | 香蕉久久影院| 天天躁日日躁狠狠久久 | 久久亚洲AV成人无码电影|