LINUX.ORG.RU

История изменений

Исправление i-rinat, (текущая версия) :

Функциями.

// file.h
#pragma once

void log_set_file_name(const char *name);
const char *log_get_file_name(void);
void log_teardown(void);

// file.c
#include <string.h>
#include "file.h"

static char *filename = NULL;

void log_set_file_name(const char *name) {
  if (filename)
    free(filename);
  filename = strdup(name);
}

const char *log_get_file_name(void) {
  return filename;
}

void log_teardown(void) {
  if (filename) {
    free(filename);
    filename = NULL;
  }
}

Исходная версия i-rinat, :

Функциями.

// file.h
#pragma once

void log_set_file_name(const char *name);
const char *log_get_file_name(void);
void log_teardown(void);

// file.c
#include "file.h"

static char *filename = NULL;

void log_set_file_name(const char *name) {
  if (filename)
    free(filename);
  filename = strdup(name);
}

const char *log_get_file_name(void) {
  return filename;
}

void log_teardown(void) {
  if (filename) {
    free(filename);
    filename = NULL;
  }
}