Книга: UNIX: взаимодействие процессов
Программа shmread
Программа shmread
Программа shmread, текст которой приведен в листинге 14.4, проверяет последовательность значений, записанную в разделяемую память программой shmwrite.
Листинг 14.4. Проверка значений в сегменте разделяемой памяти
//svshm/shmread.c
1 #include "unpipc.h"
2 int
3 main(int argc, char **argv)
4 {
5 int i, id;
6 struct shmid_ds buff;
7 unsigned char c, *ptr;
8 if (argc != 2)
9 err_quit("usage: shmread <pathname>");
10 id = Shmget(Ftok(argv[1], 0), 0, SVSHM_MODE);
11 ptr = Shmat(id, NULL, 0);
12 Shmctl(id, IPC_STAT, &buff);
13 /* проверка значений ptr[0] = 0, ptr[1] = 1 и т. д. */
14 for (i = 0; i < buff.shm_segsz; i++)
15 if ((c = *ptr++) != (i % 256))
16 err_ret("ptr[%d] = %d", i.e);
17 exit(0);
18 }
10-12 Открываем и подключаем сегмент разделяемой памяти. Его размер может быть получен вызовом shmctl с командой IPC_STAT. 13-16 Проверяется последовательность, записанная программой shmwrite.
- Программа shmget
- Программа shmunlink
- Программа shmwrite
- Программа shmrmid
- Программа shmcreate
- Программа «Тайный покупатель»
- Программа Victoria
- Подпрограмма обработки прерывания
- Магическая программа, или Беспорядок по расписанию
- Что делать, если вместо русских букв в программах – непонятные символы?
- Как называется программа, которая устанавливает Windows за 5 минут?