--- /dev/null
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <string.h>
+#include <sys/mman.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <fcntl.h>
+
+#define nbchar 4096
+
+int main()
+{
+ int fd, res;
+ char *partage = NULL;
+ char *message = "";
+ fd = shm_open("partage.mem", O_RDWR | O_CREAT, 0600); /* ouverture du segment partagé */
+ if (fd == -1) { /* et création du nom (du fichier) */
+ perror("shm_open");
+ exit(1);
+ }
+ res = ftruncate(fd, nbchar); /* choix de la taille du segment */
+ if (res == -1) {
+ perror("ftruncate");
+ exit(1);
+ }
+ partage = (char *)mmap(NULL, nbchar, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
+ if (partage == MAP_FAILED) {
+ perror("mmap");
+ exit(1);
+ }
+ strncpy(partage, message, nbchar);
+ while (strcmp(partage, message) == 0) {
+ sleep(1);
+ }
+ fprintf(stdout, "la réponse est %s\n", partage);
+ res = munmap(partage, nbchar);
+ if (res == -1) {
+ perror("munmap");
+ exit(1);
+ }
+ close(fd); /* fermeture du fichier */
+ res = shm_unlink("partage.mem"); /* suppression du nom */
+ if (res == -1) {
+ perror("shm_unlink");
+ exit(1);
+ }
+ return 0;
+}