This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision | |||
|
os_cp:shmem_semaphores [2025/06/04 19:47] jkonczak |
os_cp:shmem_semaphores [2026/06/11 11:02] (current) jkonczak [POSIX semaphore API] |
||
|---|---|---|---|
| Line 300: | Line 300: | ||
| #include <stdio.h> | #include <stdio.h> | ||
| #include <string.h> | #include <string.h> | ||
| + | #include <stdlib.h> | ||
| #define MAX_ELEMENTS_PLUS_ONE 4 | #define MAX_ELEMENTS_PLUS_ONE 4 | ||
| Line 331: | Line 332: | ||
| int main() { | int main() { | ||
| - | struct ring_buffer buffer; | + | struct ring_buffer *buffer = malloc(sizeof(struct ring_buffer)); |
| - | initBuffer(&buffer); | + | initBuffer(buffer); |
| printf("g gets data from buffer\n" | printf("g gets data from buffer\n" | ||
| "ptext... puts 'text...' to buffer\n"); | "ptext... puts 'text...' to buffer\n"); | ||
| Line 348: | Line 349: | ||
| switch (cmd[0]) { | switch (cmd[0]) { | ||
| case 'p': | case 'p': | ||
| - | put(&buffer, &item); | + | put(buffer, &item); |
| break; | break; | ||
| case 'g': | case 'g': | ||
| - | get(&buffer, &item); | + | get(buffer, &item); |
| printf("%s\n", item); | printf("%s\n", item); | ||
| break; | break; | ||