ВУЗ:
Составители:
265
Программа shmwrite заполняет сегмент разделяемой памяти после-
довательностью значений 0, 1, 2, ... , 254, 255. Сегмент разделяемой па-
мяти открывается вызовом shmget и подключается вызовом shmat. Его
размер может быть получен вызовом shmctl с командой IPC_STAT.
#include <stdio.h>
#include <sys/ipc.h>
#include <sys/shm.h>
#include <error.h>
#include <fcntl.h>
#define SVSHM_MODE (S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH)
int main(int argc, char **argv)
{
int i, id;
struct shmid_ds buff;
unsigned char *ptr;
if (argc != 2)
{
printf("usage: shmwrite <path_to_file>");
return 0;
}
id = shmget(ftok(argv[1], 0), 0, SVSHM_MODE);
ptr = (unsigned char*) shmat(id, NULL, 0);
shmctl(id, IPC_STAT, &buff);
/* 4set: ptr[0] = 0, ptr[1] = 1, etc. */
for (i = 0; i < buff.shm_segsz; i++) *ptr++ = i % 256;
return 0;
}
Программа shmread проверяет последовательность значений, запи-
санную в разделяемую память программой shmwrite.
#include <stdio.h>
#include <unistd.h>
#include <sys/ipc.h>
#include <sys/shm.h>
Страницы
- « первая
- ‹ предыдущая
- …
- 263
- 264
- 265
- 266
- 267
- …
- следующая ›
- последняя »
