Contents of /trunk/mkinitrd-magellan/klibc/usr/klibc/tests/fcntl.c
Parent Directory | Revision Log
Revision 532 -
(show annotations)
(download)
Sat Sep 1 22:45:15 2007 UTC (16 years, 9 months ago) by niro
File MIME type: text/plain
File size: 794 byte(s)
Sat Sep 1 22:45:15 2007 UTC (16 years, 9 months ago) by niro
File MIME type: text/plain
File size: 794 byte(s)
-import if magellan mkinitrd; it is a fork of redhats mkinitrd-5.0.8 with all magellan patches and features; deprecates magellan-src/mkinitrd
1 | /* |
2 | * Simple test of fcntl |
3 | */ |
4 | |
5 | #include <stdio.h> |
6 | #include <unistd.h> |
7 | #include <fcntl.h> |
8 | #include <errno.h> |
9 | #include <stdlib.h> |
10 | #include <string.h> |
11 | |
12 | int main(int argc, char *argv[]) |
13 | { |
14 | int fd = open(argv[0], O_RDONLY); |
15 | struct flock l; |
16 | long flags; |
17 | |
18 | (void)argc; |
19 | |
20 | if (fd < 0) { |
21 | perror("open"); |
22 | exit(1); |
23 | } |
24 | |
25 | /* Get the flags on this FD */ |
26 | |
27 | if ((flags = fcntl(fd, F_GETFL)) == -1) { |
28 | perror("F_GETFL"); |
29 | exit(1); |
30 | } |
31 | |
32 | if (flags != (O_RDONLY | O_LARGEFILE)) |
33 | fprintf(stderr, "flags = %#lx\n", flags); |
34 | |
35 | /* Set a lock on this FD */ |
36 | memset(&l, 0, sizeof l); |
37 | l.l_type = F_RDLCK; |
38 | l.l_whence = SEEK_SET; |
39 | l.l_start = 123; |
40 | l.l_len = 456; |
41 | |
42 | if (fcntl(fd, F_SETLK, &l) == -1) { |
43 | perror("F_SETLK"); |
44 | exit(1); |
45 | } |
46 | |
47 | /* Eventually, fork and try to conflict with this lock... */ |
48 | |
49 | return 0; |
50 | } |