#include "common.h" /* 処理が終了したら statusにFINを入れる。 すると、ほかのプログラム(viewer)がメモリを解放してくれる */ 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 main(int argc, char **argv) { int i; 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_access(key, sizeof(struct SHM_PARAM), &shd_param_id, (int *)¶m_ptr); param_ptr->shd_param_id = shd_param_id; for(i=1; i<10 ; i++){ param_ptr->b += 2; param_ptr->a *=2; usleep(50000); } param_ptr->status = FIN; }