diff options
author | Jarkko Hietaniemi <Jarkko.Hietaniemi@cc.hut.fi> | 1997-01-19 20:11:22 +0200 |
---|---|---|
committer | Chip Salzenberg <chip@atlantic.net> | 1997-01-25 15:58:00 +1200 |
commit | 705af49881f30cfecf0e96f7cd0ee83dea50d68d (patch) | |
tree | f1319bda08fbd2913a0c2a0e8868d84aafd2267e /ext/Fcntl | |
parent | ff7f3c60e77f15ff4f5a3176285a6a22c685a51b (diff) | |
download | perl-705af49881f30cfecf0e96f7cd0ee83dea50d68d.tar.gz |
Fcntl: add more constants
Subject: O_EXLOCK, O_SHLOCK to Fcntl.
p5p-msgid: <199701191717.TAA17694@alpha.hut.fi>
private-msgid: <199701191811.UAA16346@alpha.hut.fi>
Diffstat (limited to 'ext/Fcntl')
-rw-r--r-- | ext/Fcntl/Fcntl.pm | 10 | ||||
-rw-r--r-- | ext/Fcntl/Fcntl.xs | 54 |
2 files changed, 62 insertions, 2 deletions
diff --git a/ext/Fcntl/Fcntl.pm b/ext/Fcntl/Fcntl.pm index 489853416d..d9e36943d5 100644 --- a/ext/Fcntl/Fcntl.pm +++ b/ext/Fcntl/Fcntl.pm @@ -29,6 +29,9 @@ are exported into your namespace. You can request that the flock() 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); @@ -36,7 +39,7 @@ 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 = @@ -45,9 +48,12 @@ $VERSION = "1.01"; 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 diff --git a/ext/Fcntl/Fcntl.xs b/ext/Fcntl/Fcntl.xs index 0f51b100d7..4ecdf91e9c 100644 --- a/ext/Fcntl/Fcntl.xs +++ b/ext/Fcntl/Fcntl.xs @@ -214,6 +214,60 @@ int arg; #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; |