#include #include #include #include #include #define FILE_PATH "example.txt" #define FILE_SIZE 4096 // File size for mmap void use_write(int fd) { const char *write_data = "Hello from write()\n syscall!\n"; char read_buf[100] = {0}; write(fd, write_data, strlen(write_data)); } void use_mmap(int fd) { // Extend file size for mmap ftruncate(fd, FILE_SIZE); // Memory-map the file char *map = mmap(NULL, FILE_SIZE, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0); if (map == MAP_FAILED) { perror("mmap failed"); return; } // Write data using mmap const char *mmap_data = "Hello from mmap!\n"; strcpy(map, mmap_data); } int main() { int fd = open(FILE_PATH, O_RDWR | O_CREAT, 0644); if (fd < 0) { perror("open failed"); return 1; } printf("Using syscall write\n"); use_write(fd); printf("Using mmap\n"); use_mmap(fd); close(fd); return 0; }