Redirecionamentos constantes

Se você alguma vez (re?) Usar um número ou string em seu código, não faça isso:

char buffer[4096];
...
snprintf
(buffer, 4096, "%s/.%s/%s",
path
, argv[0], "v1.0");
...

Em vez disso, use as ferramentas disponíveis! Consulte o valor por um nome em vez de usar a própria constante. Dessa forma, se você quiser alterar o valor, é uma linha fácil. (Também protege você de esquecer de atualizar cada uso e evita edições acidentais quando os valores colidem. Também ajuda a manter todas as suas definições em um só lugar!)

#define BUFFER_SIZE 4096
#define PRODUCT_NAME "program"
#define VERSION_STRING "v0.1"

char buffer[BUFFER_SIZE];
...
snprintf
(buffer, BUFFER_SIZE, "%s/.%s/%s",
path
, PRODUCT_NAME, VERSION_STRING);
...