Simple test for fcntl()
diff --git a/klibc/tests/fcntl.c b/klibc/tests/fcntl.c
new file mode 100644
index 0000000..f504ad9
--- /dev/null
+++ b/klibc/tests/fcntl.c
@@ -0,0 +1,53 @@
+/*
+ * Simple test of fcntl
+ */
+
+#include <stdio.h>
+#include <unistd.h>
+#include <fcntl.h>
+#include <errno.h>
+#include <stdlib.h>
+#include <string.h>
+
+int main(int argc, char *argv[])
+{
+ int fd = open(argv[0], O_RDONLY);
+ struct flock l;
+ long flags;
+
+ (void)argc;
+
+ if ( fd < 0 ) {
+ perror("open");
+ exit(1);
+ }
+
+ /* Get the flags on this FD */
+
+ if ( (flags = fcntl(fd, F_GETFL)) == -1 ) {
+ perror("F_GETFL");
+ exit(1);
+ }
+
+ if ( flags != (O_RDONLY|O_LARGEFILE) )
+ fprintf(stderr, "flags = %#lx\n", flags);
+
+ /* Set a lock on this FD */
+ memset(&l, 0, sizeof l);
+ l.l_type = F_RDLCK;
+ l.l_whence = SEEK_SET;
+ l.l_start = 123;
+ l.l_len = 456;
+
+ if ( fcntl(fd, F_SETLK, &l) == -1 ) {
+ perror("F_SETLK");
+ exit(1);
+ }
+
+ /* Eventually, fork and try to conflict with this lock... */
+
+ return 0;
+}
+
+
+