¿Cómo puedo obtener la ruta del directorio temporal en Ubuntu?¿Qué método gtk tengo que usar para obtener una ruta temporal en Ubuntu?
Respuesta
bandadas,
Gracias por tomarse su tiempo, pero lo que estoy esperando es desde el enlace de GNOME.
http://library.gnome.org/devel/glib/unstable/glib-Miscellaneous-Utility-Functions.html
utilizando la API g_get_tmp_dir() que puede tener la ubicación del directorio temporal
En la mayoría de los sistemas tipo Unix, usted estaría buscando /tmp
. Si esa no es exactamente la respuesta que buscabas, debes especificar de la cual bit de Ubuntu estás hablando.
Algunas aplicaciones le permiten especificar dónde se ponen sus archivos temporales (por ejemplo, con las variables de entorno TMP
, TEMP
o TMPDIR
), pero muchas cosas se romperían bajo UNIX si /tmp
no existía, así que es seguro solo para usar eso. Si quieres que sea configurable, en su código, que tendría que utilizar algo así como la función getTmpDir()
en el siguiente programa completo:
#include <stdio.h>
#include <stdlib.h>
const char *getTmpDir (void) {
char *tmpdir;
if ((tmpdir = getenv ("TEMP")) != NULL) return tmpdir;
if ((tmpdir = getenv ("TMP")) != NULL) return tmpdir;
if ((tmpdir = getenv ("TMPDIR")) != NULL) return tmpdir;
return "/tmp";
}
int main(void) {
const char *xyzzy = getTmpDir();
printf ("Temporary directory = %s\n", xyzzy);
return 0;
}
que emite, en mi entorno CygWin (tengo tanto TEMP
y TMP
conjunto de este valor):
Temporary directory = /cygdrive/c/Users/Pax/AppData/Local/Temp
Eso es más o menos lo que hace el GLib g_get_tmp_dir()
llamada, aunque posiblemente en un orden diferente.
Por supuesto, si desea utilizar una variable de entorno específico de la aplicación, se puede poner esto delante de los demás así:
const char *getTmpDir (void) {
char *tmpdir;
if ((tmpdir = getenv ("XYZZY_TMP")) != NULL) return tmpdir;
if ((tmpdir = getenv ("TEMP")) != NULL) return tmpdir;
if ((tmpdir = getenv ("TMP")) != NULL) return tmpdir;
if ((tmpdir = getenv ("TMPDIR")) != NULL) return tmpdir;
return "/tmp";
}
O incluso sacar algunas o todas las "estándar". Pero debería casi siempre recurrir a /tmp
si el usuario no ha configurado nada.
Hay una TMPDIR variable de entorno que se puede establecer la ubicación del directorio temporal, la mayoría de los programas de respetar esto, si no se establece por defecto lo/tmp (o/var/tmp)
Miré how Python does this , y no parece haber ninguna interfaz específica de UNIX para hacerlo.
Ellos sólo tratan, en secuencia:
- Las variables de entorno
TMPDIR
,TEMP
yTMP
/tmp
/var/tmp
/usr/tmp
Teniendo en cuenta que era Python escrito por personas mucho más inteligentes que yo, estaría dispuesto a apostar que esto es probablemente lo mejor que puedes hacer.
Desde la línea de comandos:
$ tempfile | xargs dirname
/tmp
$ TMPDIR="/mnt/tmp" tempfile | xargs dirname
/mnt/tmp
- 1. comenzando con GTK + en Ubuntu
- 2. ¿Qué CursorAdapter tengo que usar?
- 3. ¿Cómo usar el menú global de Ubuntu Unity en GTK #?
- 4. ¿Por qué tengo que usar [ProtoInclude]?
- 5. ¿Por qué tengo que usar $ (esto)?
- 6. ¿Cómo averiguas qué versión de GTK + está instalada en Ubuntu?
- 7. ¿Por qué tengo que usar close() para cerrar un archivo?
- 8. ¿Por qué tengo que usar finalmente para cerrar recursos?
- 9. mejorando JFileChooser bajo Ubuntu 12.04 (GTK)
- 10. ¿Necesita actualizar GTK + en Ubuntu (10.04)
- 11. ¿Qué es createChooser cuando tengo que usar Intents? ¿Qué podría hacer con este método?
- 12. ¿Por qué usar una tabla temporal sería más rápido que una consulta anidada?
- 13. ¿Por qué tengo que asignar una variable a f.readlines() para obtener su longitud?
- 14. C# Archivo de configuración: ¿Por qué tengo que usar Settings.Default?
- 15. ¿Qué IDE usar para Javascript en Ubuntu 11.04?
- 16. ¿En qué archivo está configurada la ruta del sistema Ubuntu?
- 17. ¿Tengo que conservar una SEL
- 18. Objetos JSON anidados: ¿tengo que usar matrices para todo?
- 19. Obtener python MySQLdb para ejecutar en Ubuntu
- 20. Obtener ruta de archivo y URL para el archivo en el directorio temporal
- 21. ¿Cómo crearía una tabla temporal en SQL Server cuando tengo una gran lista de ID
- 22. cómo obtener una ruta absoluta para una imagen en drupal?
- 23. Atajos múltiples para una acción en GTK
- 24. ¿Existe un método en C# para obtener la ruta relativa dado dos entradas de ruta absoluta?
- 25. ¿Función para obtener una ruta localizada?
- 26. ¿Por qué debería usar WndProc cuando tengo eventos de formulario?
- 27. Abra una ruta con Desktop.open() desde java en ubuntu (linux)
- 28. Convierta una serie temporal irregular en una serie temporal normal
- 29. ¿Tengo que usar el prefijo N en la declaración "insertar en" para unicode? Al igual que
- 30. ¿Por qué tengo que pasar RequestContext en todas mis respuestas?
ya que eso es lo que estoy esperando. Quiero obtener ese camino programáticamente utilizando gtk o glib que sea posible. – boom
Err, no tiene que obtenerlo programáticamente. Es '/ tmp'. Es (a pesar de los administradores sádicos) _always_ '/ tmp'. Si está codificando en C: 'char * tmpdir ="/tmp ";' lo hará bien :-) Puede afectar ciertas aplicaciones (como la variable 'TMPDIR' en' bash') pero muchas cosas romper si '/ tmp' no existe. – paxdiablo