Bruno Haible <[EMAIL PROTECTED]> writes:

> I think it's worth describing how to portably create a temporary
> file.

Thanks for this suggestion.  I altered the change a bit and installed
this:

2005-02-04  Bruno Haible <[EMAIL PROTECTED]>
        and Paul Eggert  <[EMAIL PROTECTED]>

        * doc/autoconf.texi (Limitations of Usual Tools): New mkstemp entry.

--- autoconf.texi       3 Feb 2005 00:31:33 -0000       1.873
+++ autoconf.texi       5 Feb 2005 00:11:43 -0000       1.874
@@ -11819,6 +11819,35 @@ recent enough (the copies shipped with A
 older versions are not thread-safe either).
 
 
[EMAIL PROTECTED] @command{mktemp}
[EMAIL PROTECTED] -------------------
[EMAIL PROTECTED] @command{mktemp}
[EMAIL PROTECTED] Creating temporary files
+The command @command{mktemp} lets shell scripts use temporary files
+safely, but it does not exist on all systems.  A portable way to create
+a safe temporary file name is to create a temporary directory with mode
+700 and use a file inside this directory.
+
+Here is sample code to create a new temporary directory safely
+under @code{$TMPDIR}, with the default location being @file{/tmp}:
+
[EMAIL PROTECTED]
+: [EMAIL PROTECTED]/[EMAIL PROTECTED]
[EMAIL PROTECTED]
+  # Prefer mktemp if it exists, as it is more reliable.
+  tmp=`
+    (umask 077 && mktemp -d "$TMPDIR/fooXXXXXX") 2>/dev/null
+  ` &&
+  test -n "$tmp" && test -d "$tmp"
[EMAIL PROTECTED] ||
[EMAIL PROTECTED]
+  # Fall back on mkdir; $RANDOM makes collisions less likely.
+  tmp=$TMPDIR/foo$$-$RANDOM
+  (umask 077 && mkdir "$tmp")
[EMAIL PROTECTED] || exit $?
[EMAIL PROTECTED] example
+
+
 @item @command{mv}
 @c ---------------
 @prindex @command{mv}


_______________________________________________
Autoconf mailing list
Autoconf@gnu.org
http://lists.gnu.org/mailman/listinfo/autoconf

Reply via email to