Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Создает временный файл. Это версия 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.
По умолчанию глобальное состояние этой функции ограничивается приложением. Чтобы изменить это поведение, см . статью "Глобальное состояние" в CRT.
Требования
| Маршрут | Обязательный заголовок |
|---|---|
tmpfile_s |
<stdio.h> |
Дополнительные сведения о совместимости см. в разделе Совместимость.
Пример
Примечание.
В этом примере могут потребоваться права администратора для запуска в Windows.
// 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() );
}
Temporary file 1 was created
Temporary file 2 was created
Temporary file 3 was created
3 temporary files deleted
См. также
Потоковый ввод-вывод
_rmtmp
_tempnam, , _wtempnamtmpnam_wtmpnam