Opens a file for writing in the preferred directory for temporary files (as returned by g_get_tmp_dir()).

tmpl should be a string in the GLib file name encoding containing a sequence of six 'X' characters, as the parameter to g_mkstemp(). However, unlike these functions, the template should only be a basename, no directory components are allowed. If template is NULL, a default template is used.

Note that in contrast to g_mkstemp() (and mkstemp()) tmpl is not modified, and might thus be a read-only literal string.

Upon success, and if name_used is non-NULL, the actual name used is returned in name_used. This string should be freed with g_free() when not needed any longer. The returned name is in the GLib file name encoding.

struct FileUtils
string tmpl
out string nameUsed


tmpl string

Template for file name, as in g_mkstemp(), basename only, or NULL for a default template

nameUsed string

location to store actual name used, or NULL

Return Value

Type: int

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 error will be set.


GException on failure.