// Разделяемая память SystemV в Linux // Программа из учебника "Системное программирование в среде Linux", Гунько А.В., стр. 100 // Название: shmread.c // Описание: чтение из сегмента разделяемой памяти //svshm/shmread.c #include #include #include #include #include int main(int argc, char **argv) { int i, id; struct shmid_ds buff; unsigned char c, *ptr; if (argc != 2) { printf("usage: shmread \n"); exit(-1); } id = shmget(ftok(argv[1], 0), 0, 0); ptr = shmat(id, NULL, 0); shmctl(id, IPC_STAT, &buff); /* проверка значений ptr[0] = 0, ptr[1] = 1 и т. д. */ for (i= 0; i < buff.shm_segsz; i++) if ( (c = *ptr++) != (i % 256)) //{c=*ptr++; printf("ptr[%d]= %d\n", i, c); //} exit(0); }