Операционные системы. Теория и практика. Замятин А.В. - 263 стр.

UptoLike

Составители: 

263
key semid owner perms nsems
0x000004d2 425986 root 644 1
Разделяемая память
Программа shmget создает сегмент разделяемой памяти, принимая из
командной строки полное имя произвольного файла и длину сегмента.
#include <stdio.h>
#include <error.h>
#include <fcntl.h>
#include <sys/ipc.h>
#include <sys/shm.h>
#include <unistd.h>
#include <stdlib.h>
#define SVSHM_MODE (S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH)
int main(int argc, char **argv)
{
int c, id, oflag;
сhar *ptr;
size_tlength;
oflag = SVSHM_MODE | IPC_CREAT; // флаг создания семафора
while ( (c = getopt(argc, argv, "e")) != -1) {
switch (c) { // просмотр ключей командной строки
case 'e':
oflag |= IPC_EXCL;
break;
}
}
if (optind != argc - 2)
{
printf("usage: shmget [ -e ] <path_to_file> <length>");
return 0;
}
length = atoi(argv[optind + 1]);
id = shmget(ftok(argv[optind], 0), length, oflag);