g_mkstmp() replacement for tempfile.c
shawn <[email protected]> Mon, 04 Jun 2012 18:38:46 -0700
| Newsgroups | gmane.comp.compilers.distcc |
|---|---|
| Message-ID | <1338860326.5580.25.camel@shawn-ssd> |
from tempfile.c == * It would be nice if we could use a standard function, but I don't * think any of them are adequate: we need to control the extension * and know the filename. tmpfile() does not give back the filename. * tmpnam() is insecure. mkstemp() does not allow us to set the * extension. * * It sucks that there is no standard function. The implementation * below is inspired by the __gen_tempname() code in glibc; hopefully * it will be secure on all platforms. === well, such a thing DOES exist, in glib: http://developer.gnome.org/glib/2.33/glib-File-Utilities.html#g-mkstemp interested in switching? == gint g_mkstemp (gchar *tmpl); Opens a temporary file. See the mkstemp() documentation on most UNIX-like systems. The parameter is a string that should follow the rules for mkstemp() templates, i.e. contain the string "XXXXXX". g_mkstemp() is slightly more flexible than mkstemp() in that the sequence does not have to occur at the very end of the template. The X string will be modified to form the name of a file that didn't exist. The string should be in the GLib file name encoding. Most importantly, on Windows it should be in UTF-8. tmpl : template filename. [type filename] Returns : A file handle (as from open()) to the file opened for reading and writing. The file is opened in binary mode on platforms where there is a difference. The file handle should be closed with close(). In case of errors, -1 is returned and errno will be set. __ distcc mailing list http://distcc.samba.org/ To unsubscribe or change options: https://lists.samba.org/mailman/listinfo/distcc