?? rmtmp.c
字號:
/***
*rmtmp.c - remove temporary files created by tmpfile.
*
* Copyright (c) 1985-1997, Microsoft Corporation. All rights reserved.
*
*Purpose:
*
*******************************************************************************/
#include <cruntime.h>
#include <stdio.h>
#include <file2.h>
#include <internal.h>
#include <mtdll.h>
#ifdef _MSC_VER
#pragma data_seg(".CRT$XPX")
#ifdef _WIN32
static _PVFV pterm = _rmtmp;
#else /* _WIN32 */
#if defined (_M_MPPC) || defined (_M_M68K)
static _PVFV __prmtmp = _rmtmp;
#endif /* defined (_M_MPPC) || defined (_M_M68K) */
#endif /* _WIN32 */
#pragma data_seg()
#endif /* _MSC_VER */
#ifdef _WIN32
/*
* Definitions for _tmpoff, _tempoff and _old_pfxlen. These will cause this
* module to be linked in whenever the termination code needs it.
*/
#ifndef CRTDLL
unsigned _tmpoff = 1;
#endif /* CRTDLL */
unsigned _tempoff = 1;
unsigned _old_pfxlen = 0;
#else /* _WIN32 */
#if defined (_M_MPPC) || defined (_M_M68K)
/*
* Definitions for _tmpoff, _tempoff and _old_pfxlen. These will cause this
* module to be linked in whenever the termination code needs it.
*/
unsigned int _tmpoff = 1;
unsigned int _tempoff = 1;
unsigned int _old_pfxlen = 0;
/*
* Define _prmtmp, the function pointer used in the termination code.
*/
void (__cdecl * _prmtmp)(void) = _rmtmp;
#endif /* defined (_M_MPPC) || defined (_M_M68K) */
#endif /* _WIN32 */
/***
*int _rmtmp() - closes and removes temp files created by tmpfile
*
*Purpose:
* closes and deletes all open files that were created by tmpfile.
*
*Entry:
* None.
*
*Exit:
* returns number of streams closed
*
*Exceptions:
*
*******************************************************************************/
int __cdecl _rmtmp (
void
)
{
REG2 int count = 0;
#ifdef _WIN32
REG1 int i;
_mlock(_IOB_SCAN_LOCK);
for ( i = 0 ; i < _nstream ; i++)
if ( __piob[i] != NULL ) {
_lock_str2(i, __piob[i]);
if ( inuse( (FILE *)__piob[i] ) &&
(((FILE *)__piob[i])->_tmpfname != NULL) )
{
_fclose_lk( __piob[i] );
count++;
}
_unlock_str2(i, __piob[i]);
}
_munlock(_IOB_SCAN_LOCK);
#else /* _WIN32 */
#if defined (_M_MPPC) || defined (_M_M68K)
REG1 FILE *stream = _iob;
for (; stream <= _lastiob; stream++) {
if (inuse(stream) && (stream->_tmpfname != NULL) ) {
fclose(stream);
count++;
}
}
#endif /* defined (_M_MPPC) || defined (_M_M68K) */
#endif /* _WIN32 */
return(count);
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -