/* * Copyright (c) International Business Machines Corp., 2009 * * Authors: * Mimi Zohar * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License as * published by the Free Software Foundation, version 2 of the * License. * * File: ima_mmap.c * * Open and mmap a file and sleep. Another process will open the * mmapped file in read mode, resulting in a open_writer violation. */ #include #include #include #include #include #include #include "test.h" char *TCID = "ima_mmap"; int TST_TOTAL = 1; int main(int argc, char *argv[]) { int fd; void *file; char *filename; if (argc != 2) printf("%s: filename\n", argv[1]); filename = argv[1]; fd = open(filename, O_CREAT | O_RDWR, S_IRWXU); if (fd < 0) { perror("open"); return (-1); } file = mmap(NULL, 1024, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0); if (file == (void *)-1) { perror("mmap"); return (-1); } close(fd); sleep(30); if (munmap(file, 1024) < 0) { perror("unmap"); return (-1); } tst_exit(); }