Today, GDL is using ("basic_fun.cpp", line 212)
(*env)[i] = SysVar::Dir();
to define GDL_TMPDIR and IDL_TMPDIR
Default !DIR (set up by Dir()) in GDL goes to /usr/local (set up by EXEC_PREFIX)
(since GDL to be install in /usr/local/bin/)
It is a problem because usually /usr/local is not writable for end users.
I check what IDL is using on various Linux: /usr/tmp, which is a link to /var/tmp !!
We have in fact two classic solutions on Linux and OSX: /tmp and /var/tmp
(/tmp may be frequently cleanup or at reboot; files in /var/tmp may have longuer life)
in /usr/include/paths.h (exist on Linux and OSX) we have
#define _PATH_TMP "/tmp/"
#define _PATH_VARTMP "/var/tmp/"
I decided for _PATH_VARTMP which mimic current IDL way
I don't know how to do for MSwin OSes.
(and I read it is changing a lot depending on OS versions)