2010-06-17 8 views
10

¿Cuál es la función Core Foundation más cercana a la funcionalidad de NSLog?Core Foundation equivalente para NSLog

+0

¿Hay alguna razón por la que no pueda usar NSLog? –

+1

El código con el que estoy trabajando es C, que incluye solo el encabezado CoreFoundation.h, y realmente no quería meterme con eso solo para imprimir una declaración de registro. –

Respuesta

8

CFShow() es similar, pero sin las cosas de prefijo. O, como dice wbyoung, use NSLog(). Si no quiere usar Objective-C, el siguiente es perfectamente válido (aunque requiere vincularlo con Foundation.framework):

#if __cplusplus 
extern "C" { 
#endif 
void NSLog(CFStringRef format, ...); 
void NSLogv(CFStringRef format, va_list args); 
#if __cplusplus 
} 
#endif 

int main (int argc, const char * argv[]) 
{ 
    NSLog(CFSTR("Hello, World! %u"), 42); 
    return 0; 
} 
+0

CFShow parece ser lo que estoy buscando, y gracias por la otra sugerencia también. –

3

NSLog está construido sobre las instalaciones del Registro del sistema Apple. Ejecute man 3 asl para ver la página de manual para esto. Puede usar asl directamente, pero a menos que haya una razón, puede seguir usando NSLog. Simplemente incluya y vincule a Foundation si desea evitar el enlace a Cocoa.

También puede simplemente imprimir en stderr si lo desea.