tmpfile_s
建立暫存檔案。 這些是 x8x7sakw(v=vs.120).mdCRT 中的安全性功能中所述。
errno_t tmpfile_s(
FILE** pFilePtr
);
參數
- [out] pFilePtr
儲存產生之指標的指標位址至資料流。
傳回值
如果成功,回傳零,如果失敗,則為錯誤碼。
錯誤狀況
pFilePtr |
傳回值 |
pFilePtr的內容 |
---|---|---|
NULL |
EINVAL |
沒變更 |
如果上述任參數驗證錯誤發生,則無效的參數會叫用處理常式,如 參數驗證中所述。 如果允許繼續執行,會將errno 設為 EINVAL,並傳回值是EINVAL。
備註
tmpfile_s 函式會建立暫存檔案並將指標對該資料流的 pFilePtr 引數。 暫存檔案在根目錄中建立。 除了之外,要在該目錄中建立暫存檔案,請使用 fopen搭配使用 tmpnam_s 或 tempnam 。
如果無法開啟檔案,則 tmpfile_s 會寫入NULL給pFilePtr 參數 。 這個暫存檔自動刪除時,只有在檔案關閉,也就是說,當程式通常時結束,或者,呼叫 _rmtmp 時,會假設,在目前的工作目錄不會變更。 暫存檔案在 w+b (二進位) 讀取/寫入模式下開啟。
如果您試圖以tmpfile_s.嘗試比TMP_MAX_S(請參閱 STDIO.H)更多的呼叫,會發生錯誤。
需求
常式 |
必要的標頭 |
---|---|
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。如需詳細資訊,請參閱平台叫用範例。