📄 autoclean.cpp
字号:
return ( -2 );
}
if ( mark == READFILE )
{
if ( ustat.st_mode & 0040000 )
continue;
nMatch = 0;
for ( m = 0;m < S_DirAndModes[pos].nModeNum;m++ )
{
if ( Compare( sdir->d_name, S_DirAndModes[pos].FSuffixMode[m] ) )
{
nMatch = 1;
break;
}
}
if ( nMatch == 0 )
continue;
strcpy( FileBuf[i].fname, sdir->d_name );
FileBuf[i].ftime = ustat.st_mtime;
}
else if ( mark == READDIR )
{
if ( !(ustat.st_mode&0040000) )
continue;
if ( !strcmp( sdir->d_name, "." ) )
continue;
if ( !strcmp( sdir->d_name, ".." ) )
continue;
strcpy( DirBuf[i].fname, sdir->d_name );
}
i++;
if ( i >= nums )
break;
}
closedir(dirfp);
if ( mark == READFILE )
{
FCount = i;
qsort( &FileBuf[0], i, sizeof(struct Dirbuf), _DirCmpProc );
}
else if ( mark == READDIR )
{
DCount = i;
qsort( &DirBuf[0], i, sizeof(struct Dirbuf), _DirCmpProc );
}
return ( i );
}
int ReadSortFile( char *dirname, char *comp, int num )
{
long i, j, l;
DIR *dirfp;
struct dirent *sdir;
struct stat ustat;
char fname[200];
if ( (dirfp = opendir( dirname )) == NULL)
return ( -1 );
i = 0;
while ( (sdir = readdir(dirfp)) != NULL )
{
if ( !sdir->d_ino )
continue;
if ( strlen( sdir->d_name ) < 5 )
continue;
sprintf(fname, "%s%s", dirname, sdir->d_name);
if ( stat(fname, &ustat) )
{
closedir(dirfp);
return ( -2 );
}
if ( ustat.st_mode & 0040000 )
continue;
j = strlen( sdir->d_name );
l = strlen( comp );
if ( strncmp( sdir->d_name + j - l, comp, l ) )
continue;
strcpy( DirBuf[i].fname, sdir->d_name );
DirBuf[i].ftime = ustat.st_mtime;
i++;
if ( i >= num )
break;
}
closedir(dirfp);
qsort( &DirBuf[0], i, sizeof(struct Dirbuf), _DirCmpProc );
return ( i );
}
int Get_File( char *file, char *comp )
{
int i;
FILE *fp8;
char Buf[300], s[10][200];
if ( ( fp8 = fopen( file, "r" ) ) == NULL )
{
sprintf( tmpss, "open %s file err!", file );
PTrace( TIMEDEBUG, Buf );
return ( -1);
}
while ( fgets( Buf, 300, fp8 ) != NULL )
{
if ( strlen( Buf ) < 10 )
continue;
sscanf( Buf, "%s %s %s %s %s %s", s[0], s[1], s[2], s[3], s[4], s[5] );
for ( i = 0;i < 6;i++ )
DeleteSpace( s[i] );
if ( strcasecmp( comp, s[0] ) )
continue;
for ( i = 1;i < 6;i++ )
strcpy( RtnBuf[i], s[i] );
fclose(fp8);
return (0);
}
fclose(fp8);
return ( -2);
}
int ChkDir( char *_dir )
{
int i;
if ( chdir( _dir ) )
{
if ( mkdir( _dir, S_IRWXU | S_IRGRP | S_IXGRP ) )
{
sprintf( tmpss, "mkdir %s err!", _dir );
PTrace( ERRDEBUG, tmpss );
return ( -1);
}
}
return (0);
}
int CheckFileSize( char *fname )
{
FILE *fp9;
long fsize1, fsize2;
char Bufs[400], ss[80];
if ( ( fp9 = fopen( fname, "r" ) ) == NULL )
{
sprintf( tmpss, "open file %s err!", fname );
PTrace( ERRDEBUG, tmpss );
return ( -1);
}
if ( fgets( Bufs, 200, fp9 ) == NULL )
{
sprintf( tmpss, "read file %s err", Bufs );
PTrace( ERRDEBUG, tmpss );
return ( -2);
}
strncpy( ss, Bufs + 180, 12 );
ss[12] = 0;
fsize1 = atol( ss );
fseek( fp9, 0L, SEEK_END );
fsize2 = ftell( fp9 ) - 200;
if ( fsize1 != fsize2 )
{
sprintf( tmpss, "CheckFileSize %s Err! fsize1=%ld,fsize2=%d=",
fname, fsize1, fsize2 );
PTrace( TIMEDEBUG, tmpss );
return ( -3);
}
fclose( fp9 );
return (0);
}
int PTrace( int flag, char *ss )
{
char tt[80];
if ( flag == ERRDEBUG )
{
GetTime(0, tt);
fprintf( ffp, "********** %s(%d) **********\n", tt, getpid() );
fprintf( ffp, "%s,errno=%d=\n\n", ss, errno );
}
else if ( flag == TIMEDEBUG )
{
GetTime(0, tt);
fprintf( ffp, "********** %s(%d) **********\n", tt, getpid() );
fprintf( ffp, "%s\n\n", ss );
}
else if ( flag == TRDEBUG )
{
if ((strncmp(TRMode, "TRACE", 5)) && (strncmp(TRMode, "ALL", 3)))
return (0);
GetTime(0, tt);
fprintf( ffp, "********** %s(%d) **********\n", tt, getpid() );
fprintf( ffp, "%s,errno=%d=\n\n", ss, errno );
}
else if ( flag == ALLDEBUG )
{
if ( strncmp( TRMode, "ALL", 3 ) )
return (0);
GetTime(0, tt);
fprintf( ffp, "********** %s(%d) **********\n", tt, getpid() );
fprintf( ffp, "%s,errno=%d=\n\n", ss, errno );
}
else
fprintf( ffp, "%s\n", ss );
fflush(ffp);
return (0);
}
int Compare(const char *lv_chCompareString, const char *lv_chCompareMod)
{
while (1)
{
switch (*lv_chCompareMod)
{
case '\0':
if (*lv_chCompareString == '\0')
{
return 1;
}
else
{
return 0;
}
case '!':
if (Compare(lv_chCompareString, lv_chCompareMod + 1) == 1)
{
return 0;
}
else
{
return 1;
}
case '?' :
if (*lv_chCompareString == '\0')
{
return 0;
}
return Compare(lv_chCompareString + 1, lv_chCompareMod + 1);
case '*' :
if (*(lv_chCompareMod + 1) == '\0')
{
return 1;
}
do
{
if (Compare(lv_chCompareString, lv_chCompareMod + 1) == 1)
{
return 1;
}
}
while (*(lv_chCompareString++));
return 0;
case '[' :
lv_chCompareMod++;
do
{
if (*lv_chCompareMod == *lv_chCompareString)
{
while (*lv_chCompareMod != '\0' && *lv_chCompareMod != ']')
{
lv_chCompareMod++;
}
if (*lv_chCompareMod == ']')
{
lv_chCompareMod++;
}
return Compare(lv_chCompareString + 1, lv_chCompareMod);
}
lv_chCompareMod++;
if ((*lv_chCompareMod == ':') && (*(lv_chCompareMod + 1) != ']'))
{
if ((*lv_chCompareString >= *(lv_chCompareMod - 1)) && (*lv_chCompareString <= *(lv_chCompareMod + 1)))
{
while (*lv_chCompareMod != '\0' && *lv_chCompareMod != ']')
{
lv_chCompareMod++;
}
if (*lv_chCompareMod == ']')
{
lv_chCompareMod++;
}
return Compare(lv_chCompareString + 1, lv_chCompareMod);
}
lv_chCompareMod++;
lv_chCompareMod++;
}
}
while (*lv_chCompareMod != '\0' && *lv_chCompareMod != ']');
return 0;
default :
if (*lv_chCompareString == *lv_chCompareMod)
{
return Compare(lv_chCompareString + 1, lv_chCompareMod + 1);
}
else
{
return 0;
}
}
}
}
/*-------------------------------------The End------------------------------------*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -