#include <stdint.h>
#include <stdio.h>
#include <string.h>
#include <arpa/inet.h>
#include <sys/mman.h>
#include <unistd.h>
int main(int argc, char *argv[]) {
char values[] = {1, 2, 3};
char values_copy[3];
int dest_offset;
if (read(STDIN_FILENO, &dest_offset, sizeof(dest_offset)) !=
sizeof(dest_offset)) {
fprintf(stderr, "Failed to read dest_offset\n");
return -1;
}
dest_offset = ntohl(dest_offset);
int src_offset;
if (read(STDIN_FILENO, &src_offset, sizeof(src_offset)) !=
sizeof(src_offset)) {
fprintf(stderr, "Failed to read src_offset\n");
return -1;
}
src_offset = ntohl(src_offset);
int length;
if (read(STDIN_FILENO, &length, sizeof(length)) != sizeof(length)) {
fprintf(stderr, "Failed to read length\n");
return -1;
}
length = ntohl(length);
memcpy(values_copy + dest_offset, values + src_offset, length);
fprintf(stderr, "%d\n", values_copy[0]);
void *pointer = mmap(NULL, 8, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
puts(pointer == MAP_FAILED ? "failed" : "succeeded");
return 0;
}