summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrmanfredi <rmanfredi@2592e710-e01b-42a5-8df0-11608a6cc53d>2015-04-18 10:46:24 +0000
committerrmanfredi <rmanfredi@2592e710-e01b-42a5-8df0-11608a6cc53d>2015-04-18 10:46:24 +0000
commit9f01c0c4d1fbc84af7cb19e8b9547dd641fff945 (patch)
tree2b9509c98501127f62772e0a260c0f4aae9d6337
parent7b26fa2343e40b86497ba09bf6369b5ab7ed3703 (diff)
Added check for fstatat().
git-svn-id: svn://svn.code.sf.net/p/dist/code/trunk/dist@188 2592e710-e01b-42a5-8df0-11608a6cc53d
-rw-r--r--MANIFEST1
-rw-r--r--mcon/U/d_fstatat.U46
2 files changed, 47 insertions, 0 deletions
diff --git a/MANIFEST b/MANIFEST
index 557ee76..2324968 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -233,6 +233,7 @@ mcon/U/d_flock.U Do we have flock()?
mcon/U/d_fmod.U Do we have fmod()?
mcon/U/d_fork.U Do we have fork()?
mcon/U/d_fsetpos.U Do we have fsetpos()?
+mcon/U/d_fstatat.U Do we have fstatat()?
mcon/U/d_fsync.U Do we have fsync()?
mcon/U/d_ftime.U Do we have ftime()?
mcon/U/d_ftrncate.U Do we have ftruncate()?
diff --git a/mcon/U/d_fstatat.U b/mcon/U/d_fstatat.U
new file mode 100644
index 0000000..b5af396
--- /dev/null
+++ b/mcon/U/d_fstatat.U
@@ -0,0 +1,46 @@
+?RCS:
+?RCS: Copyright (c) 2015 Raphael Manfredi
+?RCS:
+?RCS: You may redistribute only under the terms of the Artistic License,
+?RCS: as specified in the README file that comes with the distribution.
+?RCS: You may reuse parts of this distribution only within the terms of
+?RCS: that same Artistic License; a copy of which may be found at the root
+?RCS: of the source tree for dist 4.0.
+?RCS:
+?MAKE:d_fstatat: Trylink cat i_fcntl i_sysstat
+?MAKE: -pick add $@ %<
+?S:d_fstatat:
+?S: This variable conditionally defines HAS_FSTATAT if fstatat() is
+?S: available to do file stats with a relative path interepreted in
+?S: the context of an opened directory.
+?S:.
+?C:HAS_FSTATAT:
+?C: This symbol, if defined, indicates that the fstatat() routine is
+?C: available to do file stats with a relative path interepreted in
+?C: the context of an opened directory.
+?C:.
+?H:#$d_fstatat HAS_FSTATAT /**/
+?H:.
+?LINT:set d_fstatat
+: see if fstatat exists
+$cat >try.c <<EOC
+#$i_sysstat I_SYS_STAT
+#$i_fcntl I_FCNTL
+#ifdef I_FCNTL
+#include <fcntl.h> /* AT_* constants */
+#endif
+#ifdef I_SYS_STAT
+#include <sys/stat.h>
+#endif
+int main(void)
+{
+ static int ret;
+ struct stat sb;
+ ret |= fstatat(AT_FDCWD, "path", &sb, 0);
+ return ret ? 0 : 1;
+}
+EOC
+cyn=fstatat
+set d_fstatat
+eval $trylink
+