1 /* this tests whether we can use a shared writeable mmap on a file -
2 as needed for the mmap variant of FAST_SHARE_MODES */
4 #if defined(HAVE_UNISTD_H)
11 #include <sys/types.h>
15 #define DATA "conftest.mmap"
25 int fd
= open(DATA
,O_RDWR
|O_CREAT
|O_TRUNC
,0666);
28 if (fd
== -1) exit(1);
30 for (i
=0;i
<10000;i
++) {
31 write(fd
,&i
,sizeof(i
));
37 fd
= open(DATA
,O_RDWR
);
38 if (fd
== -1) exit(1);
40 buf
= (int *)mmap(NULL
, 10000*sizeof(int),
41 (PROT_READ
| PROT_WRITE
),
42 MAP_FILE
| MAP_SHARED
,
45 while (count
-- && buf
[9124] != 55732) sleep(1);
47 if (count
<= 0) exit(1);
53 fd
= open(DATA
,O_RDWR
);
54 if (fd
== -1) exit(1);
56 buf
= (int *)mmap(NULL
, 10000*sizeof(int),
57 (PROT_READ
| PROT_WRITE
),
58 MAP_FILE
| MAP_SHARED
,
61 if (buf
== (int *)-1) exit(1);
65 while (count
-- && buf
[1763] != 7268) sleep(1);
69 if (count
> 0) exit(0);