commit 2025-08-25 15:51 refine codes about readdir_r() and readdir() in ZCppMain/ZMainHead.H

This commit is contained in:
2025-08-25 15:51:05 +09:00
parent 09245f44ed
commit 37c7b4ae74
2 changed files with 78 additions and 30 deletions

View File

@ -4368,9 +4368,10 @@ namespace ZNsMain
::chdir(".."); ::closedir(VH_File); ::chdir(".."); ::closedir(VH_File);
if(VB_RemoveFail==true) return false; if(VP_DirEnt ==0 ) {return false;}
if(VB_RemoveFail==true) {return false;}
::rmdir(AP_DirName); return true; ::rmdir(AP_DirName); return true ;
//#elif defined(_REENTRANT) // && !defined(_WIN) //#elif defined(_REENTRANT) // && !defined(_WIN)
#else // !defined(_WIN) && !defined(_REENTRANT) #else // !defined(_WIN) && !defined(_REENTRANT)
@ -4403,7 +4404,7 @@ namespace ZNsMain
//////////////////////////////////////////////////////////////////*/ //////////////////////////////////////////////////////////////////*/
while(VP_DirEnt = ::readdir(VH_File)) while((VP_DirEnt = ::readdir(VH_File))!=0)
{ {
const bool CB_IsNotValid = //////////////////// const bool CB_IsNotValid = ////////////////////
( (
@ -4441,13 +4442,14 @@ namespace ZNsMain
VB_RemoveFail=false; VB_RemoveFail=false;
}/* }/*
while(VP_DirEnt = ::readdir(VH_File))*/ while((VP_DirEnt = ::readdir(VH_File))!=0)*/
::chdir(".."); ::closedir(VH_File); ::chdir(".."); ::closedir(VH_File);
if(VP_DirEnt ==0 ) return false;
if(VB_RemoveFail==true) return false; if(VB_RemoveFail==true) return false;
::rmdir(AP_DirName); return true; ::rmdir(AP_DirName); return true ;
#endif //!defined(_WIN) && !defined(_REENTRANT) #endif //!defined(_WIN) && !defined(_REENTRANT)
}/* }/*
@ -4528,7 +4530,7 @@ namespace ZNsMain
) )
//////////////////////////////////////////// ////////////////////////////////////////////
{ {
ZNsMain::ZNsEnum::ZERun VE_ERun=ZNsMain::ZNsEnum::ZERun_OK; ZNsMain::ZNsEnum::ZERun VE_ERun = ZNsMain::ZNsEnum::ZERun_OK;
#if defined(_WIN) #if defined(_WIN)
@ -4623,7 +4625,7 @@ namespace ZNsMain
#ifdef _REENTRANT #ifdef _REENTRANT
while(::readdir_r(VH_File, &VO_DirEnt, &VP_DirEnt)==0 && VP_DirEnt!=0) while(::readdir_r(VH_File, &VO_DirEnt, &VP_DirEnt)==0 && VP_DirEnt!=0)
#else #else
while(VP_DirEnt = ::readdir(VH_File)) while((VP_DirEnt = ::readdir(VH_File))!=0)
#endif #endif
{ {
const bool CB_IsNotValid = const bool CB_IsNotValid =
@ -4643,7 +4645,7 @@ namespace ZNsMain
::strcat(VCA_Search , VP_DirEnt->d_name); ::strcat(VCA_Search , VP_DirEnt->d_name);
::strcpy(VO_CFileData.cFileName, VP_DirEnt->d_name); ::strcpy(VO_CFileData.cFileName, VP_DirEnt->d_name);
if(::lstat(VCA_Search,&VO_CFileData)<0) if(::lstat(VCA_Search, &VO_CFileData)<0)
{ {
throw ZCExceptDir throw ZCExceptDir
( (
@ -4654,7 +4656,7 @@ namespace ZNsMain
return ZNsMain::ZNsEnum::ZERun_NO; return ZNsMain::ZNsEnum::ZERun_NO;
}/* }/*
if(::lstat(VCA_Search,&VO_CFileData)<0)*/ if(::lstat(VCA_Search, &VO_CFileData)<0)*/
if(VO_CFileData.IsDir()) // S_ISDIR(VO_CFileData.st_mode)) if(VO_CFileData.IsDir()) // S_ISDIR(VO_CFileData.st_mode))
{ {
@ -4694,10 +4696,18 @@ namespace ZNsMain
}/* }/*
else // !VO_CFileData.IsDir()*/ else // !VO_CFileData.IsDir()*/
}/* }/*
while(VP_DirEnt = ::readdir(VH_File))*/ #ifdef _REENTRANT
while(::readdir_r(VH_File, &VO_DirEnt, &VP_DirEnt)==0 && VP_DirEnt!=0)
#else
while((VP_DirEnt = ::readdir(VH_File))!=0)
#endif
*/
::closedir(VH_File); ::closedir(VH_File);
if(VP_DirEnt==0)
return ZNsMain::ZNsEnum::ZERun_NO;
#endif //!defined(_WIN) #endif //!defined(_WIN)
return VE_ERun; return VE_ERun;
@ -4751,7 +4761,7 @@ namespace ZNsMain
ZtCTypeData<TViewDir>::GetObjRef(AR_CViewDir); ZtCTypeData<TViewDir>::GetObjRef(AR_CViewDir);
ZNsMain::ZNsEnum::ZERun VE_ERun=ZNsMain::ZNsEnum::ZERun_OK; ZNsMain::ZNsEnum::ZERun VE_ERun = ZNsMain::ZNsEnum::ZERun_OK;
#if defined(_WIN) #if defined(_WIN)
@ -4834,13 +4844,15 @@ namespace ZNsMain
#ifdef _REENTRANT #ifdef _REENTRANT
while(::readdir_r(VH_File, &VO_DirEnt, &VP_DirEnt)==0 && VP_DirEnt!=0) while(::readdir_r(VH_File, &VO_DirEnt, &VP_DirEnt)==0 && VP_DirEnt!=0)
#else #else
while(VP_DirEnt=::readdir(VH_File)) while((VP_DirEnt = ::readdir(VH_File))!=0)
#endif #endif
{ {
const bool CB_IsNotValid=( const bool CB_IsNotValid =
::strcmp(".", VP_DirEnt->d_name)==0 || (
::strcmp("..", VP_DirEnt->d_name)==0 ::strcmp(".", VP_DirEnt->d_name)==0 ||
/*//////////*/ ); ::strcmp("..", VP_DirEnt->d_name)==0
);
//////////////////////////
if(CB_IsNotValid) continue; if(CB_IsNotValid) continue;
@ -4891,10 +4903,18 @@ namespace ZNsMain
}/* }/*
else*/ else*/
}/* }/*
while(VP_DirEnt=::readdir(VH_File))*/ #ifdef _REENTRANT
while(::readdir_r(VH_File, &VO_DirEnt, &VP_DirEnt)==0 && VP_DirEnt!=0)
#else
while((VP_DirEnt = ::readdir(VH_File))!=0)
#endif
*/
::closedir(VH_File); ::closedir(VH_File);
if(VP_DirEnt==0)
return ZNsMain::ZNsEnum::ZERun_NO ;
#endif //!defined(_WIN) #endif //!defined(_WIN)
return VE_ERun; return VE_ERun;
@ -5005,7 +5025,7 @@ namespace ZNsMain
#ifdef _REENTRANT #ifdef _REENTRANT
while(::readdir_r(VH_File, &VO_DirEnt, &VP_DirEnt)==0 && VP_DirEnt!=0) while(::readdir_r(VH_File, &VO_DirEnt, &VP_DirEnt)==0 && VP_DirEnt!=0)
#else #else
while(VP_DirEnt= ::readdir(VH_File)) while((VP_DirEnt= ::readdir(VH_File))!=0)
#endif #endif
{ {
const bool CB_IsNotValid = const bool CB_IsNotValid =
@ -5063,11 +5083,11 @@ namespace ZNsMain
#ifdef _REENTRANT #ifdef _REENTRANT
while(::readdir_r(VH_File, &VO_DirEnt, &VP_DirEnt)==0 && VP_DirEnt!=0) while(::readdir_r(VH_File, &VO_DirEnt, &VP_DirEnt)==0 && VP_DirEnt!=0)
#else #else
while(VP_DirEnt= ::readdir(VH_File)) while((VP_DirEnt= ::readdir(VH_File))!=0)
#endif #endif
*/ */
::closedir(VH_File); ::closedir(VH_File); if(VP_DirEnt==0) return ZERun_NO;
#endif //!defined(_WIN) #endif //!defined(_WIN)
@ -5163,13 +5183,15 @@ namespace ZNsMain
#ifdef _REENTRANT #ifdef _REENTRANT
while(::readdir_r(VH_File, &VO_DirEnt, &VP_DirEnt)==0 && VP_DirEnt!=0) while(::readdir_r(VH_File, &VO_DirEnt, &VP_DirEnt)==0 && VP_DirEnt!=0)
#else #else
while(VP_DirEnt= ::readdir(VH_File)) while((VP_DirEnt= ::readdir(VH_File))!=0)
#endif #endif
{ {
const bool CB_IsNotValid = ( const bool CB_IsNotValid =
::strcmp(".", VP_DirEnt->d_name)==0 || (
::strcmp("..", VP_DirEnt->d_name)==0 ::strcmp(".", VP_DirEnt->d_name)==0 ||
/*//////////*/ ); ::strcmp("..", VP_DirEnt->d_name)==0
);
//////////////////////////
if(CB_IsNotValid) continue; if(CB_IsNotValid) continue;
@ -5212,10 +5234,17 @@ namespace ZNsMain
}/* }/*
else*/ else*/
}/* }/*
while((VP_DirEnt= ::readdir(VH_File))!=0)*/ #ifdef _REENTRANT
while(::readdir_r(VH_File, &VO_DirEnt, &VP_DirEnt)==0 && VP_DirEnt!=0)
#else
while((VP_DirEnt= ::readdir(VH_File))!=0)
#endif*/
::closedir(VH_File); ::closedir(VH_File);
if(VP_DirEnt==0)
return ZNsMain::ZNsEnum::ZERun_NO ;
#endif // !defined(_WIN) #endif // !defined(_WIN)
return VE_ERun; return VE_ERun;
@ -5319,7 +5348,7 @@ namespace ZNsMain
#ifdef _REENTRANT #ifdef _REENTRANT
while(::readdir_r(VH_File, &VO_DirEnt, &VP_DirEnt)==0 && VP_DirEnt!=0) while(::readdir_r(VH_File, &VO_DirEnt, &VP_DirEnt)==0 && VP_DirEnt!=0)
#else #else
while(VP_DirEnt= ::readdir(VH_File)) while((VP_DirEnt= ::readdir(VH_File))!=0)
#endif #endif
{ {
const bool CB_IsNotValid=( const bool CB_IsNotValid=(
@ -5368,10 +5397,18 @@ namespace ZNsMain
}/* }/*
else*/ else*/
}/* }/*
while((VP_DirEnt=::readdir(VH_File))!=0)*/ #ifdef _REENTRANT
while(::readdir_r(VH_File, &VO_DirEnt, &VP_DirEnt)==0 && VP_DirEnt!=0)
#else
while((VP_DirEnt= ::readdir(VH_File))!=0)
#endif
*/
::closedir(VH_File); ::closedir(VH_File);
if(VP_DirEnt==0)
return ZNsMain::ZNsEnum::ZERun_NO ;
#endif //!defined(_WIN) #endif //!defined(_WIN)
return VE_ERun; return VE_ERun;
@ -5463,7 +5500,7 @@ namespace ZNsMain
#ifdef _REENTRANT #ifdef _REENTRANT
while(::readdir_r(VH_File, &VO_DirEnt, &VP_DirEnt)==0 && VP_DirEnt!=0) while(::readdir_r(VH_File, &VO_DirEnt, &VP_DirEnt)==0 && VP_DirEnt!=0)
#else #else
while(VP_DirEnt = ::readdir(VH_File)) while((VP_DirEnt = ::readdir(VH_File))!=0)
#endif #endif
{ {
const bool CB_IsNotValid = const bool CB_IsNotValid =
@ -5518,10 +5555,18 @@ namespace ZNsMain
}/* }/*
else*/ else*/
}/* }/*
while((VP_DirEnt = ::readdir(VH_File))!=0)*/ #ifdef _REENTRANT
while(::readdir_r(VH_File, &VO_DirEnt, &VP_DirEnt)==0 && VP_DirEnt!=0)
#else
while((VP_DirEnt = ::readdir(VH_File))!=0)
#endif
*/
::closedir(VH_File); ::closedir(VH_File);
if(VP_DirEnt==0)
return ZNsMain::ZNsEnum::ZERun_NO ;
#endif // !defined(_WIN) #endif // !defined(_WIN)
return VE_ERun; return VE_ERun;

View File

@ -225,6 +225,9 @@ int main(int AI_ArgCnt, char* APP_ArgVal[])*/
g++ -std=c++98 -o ZtCLoadXml_000.exe ZtCLoadXml_000.cpp -I../ g++ -std=c++98 -o ZtCLoadXml_000.exe ZtCLoadXml_000.cpp -I../
g++ -std=c++98 -o ZtCLoadXml_000_D.exe ZtCLoadXml_000.cpp -I../ -D_DEBUG g++ -std=c++98 -o ZtCLoadXml_000_D.exe ZtCLoadXml_000.cpp -I../ -D_DEBUG
g++ -std=c++98 -o ZtCLoadXml_000_r.exe ZtCLoadXml_000.cpp -I../ -D_REENTRANT
g++ -std=c++98 -o ZtCLoadXml_000_r_D.exe ZtCLoadXml_000.cpp -I../ -D_REENTRANT -D_DEBUG
sauron@q381-2673:/mnt/e/my_CPP/ZCpp/ZCppMainTest$ gcc --version sauron@q381-2673:/mnt/e/my_CPP/ZCpp/ZCppMainTest$ gcc --version
gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0 gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0