Функция tmpnam

Прототип функции tmpnam:

char * tmpnam( char * string );

Заголовочный файл

Название Язык
stdio.h С
cstdio С++

Описание

Функция tmpnam создает имя для файла. Генерируется строка, содержащая имя файла, которое отличается от любого существующего имени файла.
Эта строка может быть использована для создания временных файлов без перезаписи любого другого существующего файла.
Если string аргументом является нулевой указатель, то результирующая строка сохраняется во внутренний статический массив, который может быть доступен через возвращаемое значение. Содержание строки хранится до следующего вызова этой же функции.

Если string аргумент не является нулевым указателем, то он должен указывать на массив размером, по крайней мере, L_tmpnam байт, который будет заполнен, предлагаемым функцией tempname, именем. L_tmpnam является макро-константа, определенная в <cstdio>.
Имя файла, возвращаемое этой функцией может быть использовано для создания регулярного файла, используя функцию fopen. Файл, созданный таким образом, в отличие от того, который создан как временный файл, автоматически не удаляется, при закрытии. Чтобы удалить такой файл, вы должны вызвать функцию remove.

Параметры:

  • string
    Указатель на массив символов, где сгенерированное имя будет храниться в виде строки. Размер этого массива должен составлять не менее L_tmpnam символов. В качестве аргумента может быть передан нулевой указатель, в этом случае строка будет храниться во внутреннем статическом массиве, который можно получить с помощью возвращаемого значения.

Возвращаемое значение

Указатель на строку, содержащую предлагаемое имя для временного файла.
Если возвращаемая строка — не пустой указатель, возвращается string.
Если функции не удается создать подходящее имя файла, она возвращает пустой указатель.

Пример: исходный код программы

// пример использования функции: tmpnam для создания имени для временного файла

#include <iostream>                             // для оператора cout
#include <cstdio>                               // для функции tmpnam

int main()
{
  char buffer[L_tmpnam];                       // строка для хранения имени файла
  char * pointer;

  tmpnam(buffer);                              // генерация имени и сохранение в buffer
  std::cout << "Сгенерированное имя №1: " << buffer << std::endl;

  pointer = tmpnam(NULL);                      // генерация имени с присвоением его адреса указателю pointer
  std::cout << "Сгенерированное имя №2: " << pointer << std::endl;

  return 0;
}

Пример работы программы

Эта программа будет генерировать два разных имени для временных файлов. Каждый был создан одним из двух методов, в которых функция tmpnam может быть использована.

CppStudio.com
Сгенерированное имя №1: /tmp/fileIogvjy
Сгенерированное имя №2: /tmp/file2KCP8S
Автор: admin
Дата: 09.09.2012
Поделиться:

Оставить комментарий

Вы должны войти, чтобы оставить комментарий.