'공유메모리 shm shmctl'에 해당되는 글 1건

  1. 2009.03.06 프로그램에서 공유 메모리 크기를 바꾸려면

shmid = shmget(shmky, 0, S_IRUSR|S_IWUSR|S_IWGRP|S_IRGRP);
       
 /* resize  (BEGIN) */
printf(" size A:[%d]\n", shmid_ds.shm_segsz);
shmid_ds.shm_segsz ++;
printf(" size B:[%d]\n", shmid_ds.shm_segsz);

/* FAIL 이렇게 하면 안되고
* if (shmctl(shmid, IPC_SET, &shmid_ds) != 0)
 *       return (0);
*/


/* SUCCESS 이렇게 해야 한다 */

if (shmctl(shmid, SHM_SIZE, &shmid_ds) != 0) {

 return (0);

}


/* resize  (END) */

printf("AFTER-----------------------------------------------------------\n");

printf("size [%d], pid_shmop [%d] pid_creat [%d]\n",
                shmid_ds.shm_segsz,
                shmid_ds.shm_lpid, shmid_ds.shm_cpid);