constants (LOCK_SH, LOCK_EX, LOCK_NB and LOCK_UN) be provided by using
the tag C<:flock>. See L<Exporter>.
+Please refer to your native fcntl() and open() documentation to see
+what constants are implemented in your system.
+
=cut
use vars qw($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS $AUTOLOAD);
require Exporter;
require DynaLoader;
@ISA = qw(Exporter DynaLoader);
-$VERSION = "1.01";
+$VERSION = "1.02";
# Items to export into callers namespace by default
# (move infrequently used names to @EXPORT_OK below)
@EXPORT =
FD_CLOEXEC F_RDLCK F_UNLCK F_WRLCK
O_CREAT O_EXCL O_NOCTTY O_TRUNC
O_APPEND O_NONBLOCK
- O_NDELAY
+ O_NDELAY O_DEFER
O_RDONLY O_RDWR O_WRONLY
+ O_EXLOCK O_SHLOCK O_ASYNC O_DSYNC O_RSYNC O_SYNC
+ F_SETOWN F_GETOWN
);
+
# Other items we are prepared to export if requested
@EXPORT_OK = qw(
LOCK_SH LOCK_EX LOCK_NB LOCK_UN
#else
goto not_there;
#endif
+ if (strEQ(name, "O_EXLOCK"))
+#ifdef O_EXLOCK
+ return O_EXLOCK;
+#else
+ goto not_there;
+#endif
+ if (strEQ(name, "O_SHLOCK"))
+#ifdef O_SHLOCK
+ return O_SHLOCK;
+#else
+ goto not_there;
+#endif
+ if (strEQ(name, "O_ASYNC"))
+#ifdef O_ASYNC
+ return O_ASYNC;
+#else
+ goto not_there;
+#endif
+ if (strEQ(name, "O_DSYNC"))
+#ifdef O_DSYNC
+ return O_DSYNC;
+#else
+ goto not_there;
+#endif
+ if (strEQ(name, "O_RSYNC"))
+#ifdef O_RSYNC
+ return O_RSYNC;
+#else
+ goto not_there;
+#endif
+ if (strEQ(name, "O_SYNC"))
+#ifdef O_SYNC
+ return O_SYNC;
+#else
+ goto not_there;
+#endif
+ if (strEQ(name, "F_SETOWN"))
+#ifdef F_SETOWN
+ return F_SETOWN;
+#else
+ goto not_there;
+#endif
+ if (strEQ(name, "F_GETOWN"))
+#ifdef F_GETOWN
+ return F_GETOWN;
+#else
+ goto not_there;
+#endif
+ if (strEQ(name, "O_DEFER"))
+#ifdef O_DEFER
+ return O_DEFER;
+#else
+ goto not_there;
+#endif
} else
goto not_there;
break;