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;
+}
+
+  
+