tmpfile_s
Создает временный файл. Здесь представлена версия tmpfile с усовершенствованной безопасностью, как описано в разделе Функции безопасности в CRT.
errno_t tmpfile_s(
FILE** pFilePtr
);
Параметры
- [исходящий] pFilePtr
Адрес указателя для хранения адреса созданного указателя на поток.
Возвращаемое значение
Возвращает 0 при успехе; код ошибки при неудаче.
Условия возникновения ошибки
pFilePtr |
Возвращаемое значение |
Содержимое pFilePtr |
---|---|---|
NULL |
EINVAL |
не изменено |
Если возникает вышеуказанная ошибка проверки параметров, вызывается обработчик недопустимого параметра, как описано в разделе Проверка параметров. Если продолжение выполнения разрешено, эти функции устанавливают для errno значение EINVAL и возвращают EINVAL.
Заметки
Функция tmpfile_s создает временный файл и помещает указатель на этот поток в аргументе pFilePtr. Временный файл создается в корневом каталоге. Чтобы создать временный файл в каталоге, отличном от корневого, используйте функцию tmpnam_s или tempnam в сочетании с fopen.
Если файл не может быть открыт, tmpfile_s записывает NULL в параметр pFilePtr. Этот временный файл автоматически удаляется при закрытии файла, нормальном завершении программы или при вызове _rmtmp при условии, что текущая рабочая папка не изменяется. Временный файл открывается в режиме w+b (бинарный чтения/записи).
Ошибка может возникать при попытке более чем TMP_MAX_S (см. STDIO.H) вызовов tmpfile_s.
Требования
Подпрограмма |
Обязательный заголовок |
---|---|
tmpfile_s |
<stdio.h> |
Дополнительные сведения о совместимости см. в разделе Совместимость во введении.
Пример
Примечание
Для выполнения этого примера в среде Windows Vista требуются права администратора.
// crt_tmpfile_s.c
// This program uses tmpfile_s to create a
// temporary file, then deletes this file with _rmtmp.
//
#include <stdio.h>
int main( void )
{
FILE *stream;
char tempstring[] = "String to be written";
int i;
errno_t err;
// Create temporary files.
for( i = 1; i <= 3; i++ )
{
err = tmpfile_s(&stream);
if( err )
perror( "Could not open new temporary file\n" );
else
printf( "Temporary file %d was created\n", i );
}
// Remove temporary files.
printf( "%d temporary files deleted\n", _rmtmp() );
}
Эквивалент в .NET Framework
Неприменимо. Для вызова стандартной функции C используйте PInvoke. Дополнительные сведения см. в разделе Примеры вызовов неуправляемого кода.