Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
rdemeter
GitHub Repository: rdemeter/so
Path: blob/master/lab5/client_mem.c
224 views
1
/*Client pentru memoria partajata*/
2
#include <stdio.h>
3
#include <stdlib.h>
4
#include <unistd.h>
5
#include <sys/mman.h>
6
#include <sys/types.h>
7
#include <fcntl.h>
8
9
/* zona in care va fi mapata memoria */
10
void *mem;
11
/* descriptorul zonei de memorie */
12
int shm_fd;
13
14
int main(int argc, char **argv)
15
{
16
shm_fd = shm_open("/MY_SHM3", O_RDWR, 0644);
17
if (shm_fd < 0) {
18
perror("open():");
19
exit(-1);
20
}
21
22
mem = mmap(0, 100, PROT_READ | PROT_WRITE, MAP_SHARED, shm_fd, 0);
23
if (mem == MAP_FAILED) {
24
perror("mmap():");
25
exit(-1);
26
}
27
28
printf("Am primit de la server: %d\n", ((int*)mem)[0]);
29
if (munmap(mem, 100) < 0) {
30
perror("munmap():");
31
exit(-1);
32
}
33
34
if (close(shm_fd) < 0) {
35
perror("close():");
36
exit(-1);
37
}
38
return 0;
39
}
40
41
42