diff options
Diffstat (limited to 'oldresources/breathing-exo-daemon/display/display-shm.c')
| -rw-r--r-- | oldresources/breathing-exo-daemon/display/display-shm.c | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/oldresources/breathing-exo-daemon/display/display-shm.c b/oldresources/breathing-exo-daemon/display/display-shm.c new file mode 100644 index 0000000..435077a --- /dev/null +++ b/oldresources/breathing-exo-daemon/display/display-shm.c @@ -0,0 +1,40 @@ +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <unistd.h> +#include <sys/mman.h> +#include <fcntl.h> +#include <sys/stat.h> + +#define SHM_NAME "/breathing_color_shm" // Shared memory name (same as in exo.c) +#define COLOR_SIZE 8 // Size for one color (e.g., #RRGGBB) + +int main() { + int shm_fd; + char *shm_ptr; + + // Open shared memory object + shm_fd = shm_open(SHM_NAME, O_RDONLY, 0666); + if (shm_fd == -1) { + perror("Failed to open shared memory"); + return 1; + } + + // Map shared memory into the process's address space + shm_ptr = mmap(NULL, COLOR_SIZE, PROT_READ, MAP_SHARED, shm_fd, 0); + if (shm_ptr == MAP_FAILED) { + perror("Failed to map shared memory"); + close(shm_fd); + return 1; + } + + // Read the color from shared memory and print it + printf("Breathing color: %s\n", shm_ptr); + + // Clean up + munmap(shm_ptr, COLOR_SIZE); + close(shm_fd); + + return 0; +} + |
