#include "common.h" int shm_initialize(key_t shm_key, int shm_size,int *shrd_id,int *shm_ptr); int shm_access(key_t shm_key, int shm_size, int *shrd_id, int *shm_ptr); int erase_shm(struct SHM_PARAM *param_ptr) { shmctl(param_ptr->shd_param_id, IPC_RMID, 0); return(0); } int main(int argc, char **argv) { int shd_param_id; struct SHM_PARAM *param_ptr; double *data_ptr; key_t key; /* このkeyは、メモリを共有するプロセス同士で同じでなければならない */ key = ftok(KEYFILE_PATH,PROJ_CHAR); if( key == -1 ) { perror("ftok()"); return 1; } shm_initialize(key, sizeof(struct SHM_PARAM), &shd_param_id, (int *)¶m_ptr); param_ptr->shd_param_id = shd_param_id; while(1){ printf("%lf, %lf\n", param_ptr->a, param_ptr->b); if( param_ptr->status == FIN ) break; sleep(1); } erase_shm(param_ptr); }