c42427050b66c2c8ba4cca1551dbdba0ed880e29
[xfstests-dev.git] / src / mmapcat.c
1 /* mmapcat.c - derived from source by misiek@pld.ORG.PL */
2
3 #include<fcntl.h>
4 #include <unistd.h>
5 #include <sys/mman.h>
6 #include <sys/stat.h>
7 #include <stdio.h>
8
9 int main(int argc, char **argv)
10 {
11         int fd;
12         char *ptr, *ptr2;
13         struct stat st;
14
15         fd=open(argv[1],O_RDONLY);
16         if(fd<0) {
17                 perror(argv[1]);
18                 exit(1);
19         }
20         fstat(fd,&st);
21         if(st.st_size%4096==0) {
22                 fprintf(stderr,"bad file size!\n");
23                 exit(1);
24         }
25
26         ptr2 = ptr = mmap(NULL,st.st_size,PROT_READ,MAP_PRIVATE,fd,0);
27         while (*ptr!=0) ptr++;
28         write(1,ptr2,ptr - ptr2);
29         exit(0);
30 }
31