El código se basa en lo que la profesora escribió en clase, pero evita tener que andar copiando y pegando ese código por todos lados.
A falta de creatividad le puse de nombre printout. Se utiliza de la misma forma que el printf, con cero o más argumentos.
Ej:
printout("Hola mundo!\n");printout("Mi nombre es %s, Mi PID es %d\n",argv[0],getpid());
Este és el codigo de la macro:
#define BUFFER_LEN 512#define printout(_str, ...) \do { \char _buffer[BUFFER_LEN]; \sprintf(_buffer, _str, ## __VA_ARGS__); \write(fileno(stdout), _buffer, strlen(_buffer)); \} while(0)
Recomiendo copiarla a un header (ej: printout.h) para ser incluido en todos los archivos que lo necesiten. Para que compile bien es necesario incluir los siguientes headers: string.h, stdio.h.
Les dejo también una variante que uso yo, que agrega al string el PID del proceso que llamó a ese printout.
#define BUFFER_LEN 512#define printout(_str, ...) \do { \char _buffer[BUFFER_LEN]; \sprintf(_buffer, "%6d: " _str, getpid(), ## __VA_ARGS__); \write(fileno(stdout), _buffer, strlen(_buffer)); \} while(0)
Cualquier duda que tengan pueden dejar un comentario o preguntarme en clase.
Saludos
No hay comentarios:
Publicar un comentario