/* Shared memory descriptor */
typedef struct {
void *addr; /* Memory address */
int key; /* Shared memory's key */
int shmid; /* Shared memory's ID */
int size; /* Size of shared memory */
int mode; /* mode == 0 : cannot write in memory */
int pin; /* if TRUE, pin shared memory */
int offset; /* current pointer (modified by smSeek() ) */
FILE *tmp; /* temporary file for new shared memory */
time_t time; /* time of last modification */
} SMEM;
#define shm_seek(smd,Offset) \
(NULL == (smd) ? -1 : ((smd)->offset += Offset))
#define shm_rewind(smd) (NULL == (smd) ? -1 : ((smd)->offset = 0))
#define shm_eof(smd) \
(smd == NULL ? -1 : ((smd->offset >= smd->size) ? 1 : 0 ))
SMEM *shm_open(int key, const char *mode);
int shm_read(void *buffer, int size, int n_elem, SMEM *smd);
int shm_write(void *buffer, int size, int n_elem, SMEM *smd);
int shm_close(SMEM *smd);
/* End of File */