|
thread 에서...
약 1초에 한번정도씩...호출되는 함수가 있습니다.
(아래에서 Test() 입니다.)
Test()함수에서 매번 이름이 다른 화일을생성하여..무엇가 화일에 쓰고...
쓰임이 끝나면...지우고 나오는데.....
약 10분 정도 실행되고 나면..화일이 open() 안되는 현상이 발생합니다... 그때 error 값을 조사해보면...
error code 18번으로
ERROR_NO_MORE_FILES
There are no more files 입니다..
왜 이런 error 가 나나요? , hdd 공간도 아주 충분합니다..
Test()
{
DWORD lastErr;
AnsiString fileName;
SYSTEMTIME t;
GetLocalTime(&t);
WORD Month=t.wMonth;
WORD Day=t.wDay;
WORD Hour=t.wHour;
WORD Minute=t.wMinute;
DWORD miliSec=t.wMilliseconds;
DWORD Sec=t.wSecond;
fileName.sprintf("C:\\cs\\mds\\conf\\ftp_displayImage_dn_%02d_%02d_%02d_%02d_%02d_%04d.bat",Month,Day,Hour,Minute,Sec,miliSec);
fpin = fopen(fileName.c_str() , "a+t" );
if(fpin==NULL)
{
lastErr=::GetLastErr();
==> 이때의 lastErr의 값을 보면... 18 이며..
==> 18은 ERROR_NO_MORE_FILES There are no more files.
return;
}
puts("do wirte..someting1..", fp);
fclose(fpin);
DeleteFile(fileName);
}
MyThread:: Execute()
{
if(Q>0)
{
Test();
}
Sleep(1000);
}
18 ERROR_NO_MORE_FILES
There are no more files.
|