/* mcat.c Prints files specified on command line to the console, using mmap. */ #include #include int main (int argc, char *argv[]) { int i; for (i = 1; i < argc; i++) { int fd; mapid_t map; void *data = (void *) 0x10000000; int size; /* Open input file. */ fd = open (argv[i]); if (fd < 0) { printf ("%s: open failed\n", argv[i]); return EXIT_FAILURE; } size = filesize (fd); /* Map files. */ map = mmap (fd, data); if (map == MAP_FAILED) { printf ("%s: mmap failed\n", argv[i]); return EXIT_FAILURE; } /* Write file to console. */ write (STDOUT_FILENO, data, size); /* Unmap files (optional). */ munmap (map); } return EXIT_SUCCESS; }