¿Cómo puedo obtener la ruta del directorio principal en Mac OS X
usando el idioma C
en el editor XCode
?Obteniendo el directorio de inicio en Mac OS X usando el lenguaje C
Respuesta
#include <stdlib.h>
#include <stdio.h>
int main(void)
{
const char *homeDir = getenv("HOME");
if (homeDir)
printf("Home directory is %s\n", homeDir);
else
printf("Couldn't figure it out.\n");
return 0;
}
'$ HOME = borrado; ./app' = El directorio de inicio se borra – jweyrich
Como dice jweyrich, esto no es confiable. No hay garantía de que HOME esté configurado en el directorio de inicio o de que esté configurado. Los procesos del servidor a menudo eliminan su entorno por razones de seguridad. Debería usar 'getpwuid()' que devuelve la estructura de contraseña incluyendo el directorio de inicio de la base de datos de usuario. http://developer.apple.com/mac/library/documentation/Darwin/Reference/ManPages/man3/getpwuid.3.html – JeremyP
POSIX garantiza que está configurado, consulte aquí: ['HOME' El sistema debe inicializar esta variable en el momento del inicio de sesión para ser una ruta de acceso del directorio de inicio del usuario] (http://pubs.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap08.html). Tenga en cuenta que en esa página también dice "Si las variables en las dos secciones siguientes están presentes en el entorno durante la ejecución de una aplicación o utilidad, se les dará el significado que se describe a continuación". – dreamlax
con FSFindFolder:
UInt8 path[1024];
FSRef file;
FSFindFolder(kOnAppropriateDisk , kCurrentUserFolderType , kCreateFolder , &file);
FSRefMakePath(&file , path , sizeof(path));
con CSCopyUserName:
char path[1024];
CFStringRef name = CSCopyUserName(true);
CFStringRef full = CFStringCreateWithFormat(NULL , NULL , CFSTR("/Users/%@") , name);
CFStringGetCString(full , path , sizeof(path) , kCFStringEncodingUTF8);
// release strings
con NSHomeDirectory:
char path[1024];
CFStringGetCString((CFStringRef)NSHomeDirectory() , path , sizeof(path) , kCFStringEncodingUTF8);
nota que el camino puede utilizar caracteres UTF8.
Tenga en cuenta que 'NSHomeDirectory' es engañoso. En realidad, devuelve el directorio de la aplicación, no el usuario actual homedir. – jweyrich
@jweyrich que solo se aplica al iPhone. En MacOS normal es el equivalente de los demás. Ninguno de estos funciona en iPhone. – drawnonward
@drawnonward ¡Sí! Lo siento, pensé que funcionaba de la misma manera. Gracias por corregirme. – jweyrich
Esto debería funcionar en Linux, Unix y OS X, para Windows necesita hacer una pequeña modificación.
#include <stdlib.h>
#include <stdio.h>
#include <pwd.h>
#include <unistd.h>
int main(void)
{
const char *homeDir = getenv("HOME");
if !homeDir {
struct passwd* pwd = getpwuid(getuid());
if (pwd)
homeDir = pwd->pw_dir;
}
printf("Home directory is %s\n", homeDir);
return 0;
}
Necesita '#include
- 1. Los scripts de shell en Mac OS X se ejecutan desde el directorio de inicio?
- 2. ¿Cómo puedo usar el directorio/home en Mac OS X
- 3. Obteniendo el lenguaje OS en java
- 4. Cómo escribir el lenguaje ensamblador hello world program para 64 bit Mac OS X usando printf?
- 5. py2exe mac os x instalar el problema
- 6. Obteniendo la posición "global" del mouse en Mac OS X
- 7. Ingrese en un directorio a través de un alias en el terminal Mac OS X
- 8. ¿Se ejecuta programáticamente al inicio en Mac OS X?
- 9. usando PEAR con MAC OS X
- 10. Mac OS X daemon usando Objective-C - launchd
- 11. Symbian C++ Desarrollo bajo Mac OS X
- 12. Objective-C de serie - Mac OS X
- 13. JNotify en Mac OS X?
- 14. Cómo usar dylib en Mac OS X (C++)
- 15. Aprendiendo ASP.NET MVC en Mac OS X
- 16. ¿Cómo configurar el inicio predeterminado de OS X Terminal?
- 17. ¿Cómo obtener el tipo de archivo en Mac OS X?
- 18. División de un archivo usando AWK en Mac OS X
- 19. Obteniendo la ruta del directorio de inicio en C#?
- 20. Detectar si el cursor está oculto en Mac OS X
- 21. Edición de conjunto en Mac OS X
- 22. ¿Podemos ejecutar una aplicación C#/WPF en Mac OS X?
- 23. Dirección MAC de la interfaz en OS X (C)
- 24. GKSession con Mac OS X
- 25. Ajustes de oscilación para Mac OS X
- 26. desinstalar ipython mac os x
- 27. Compartir el directorio de Eclipse en Dropbox entre Windows y Mac OS X
- 28. ¿Dónde está el directorio lib/security de JRE en Mac OS X?
- 29. Mac OS X View Swapping
- 30. PHP mail() usando Sendmail en Mac OS X Leopard (10.5.8)
Tome algunas respiraciones profundas, Jonathan ... – mipadi
respuesta aceptada actual no es válido pero hay otra pregunta similar que todavía está abierto http://stackoverflow.com/questions/3726113/getting- actual-usuario-home-directory-on-os-x – sorin
@JonathanSterling Pensé que el propósito de stackoverflow era ayudar a las personas a no asustarlos – MickyD