00001 /* 00002 * File: UnlinkFiles.cpp 00003 * Author: nick 00004 * 00005 * Created on 26 Сентябрь 2011 г., 19:08 00006 */ 00007 00008 #include <errno.h> 00009 00010 #include "UnlinkFiles.h" 00011 int UnlinkFiles::fileFunc(UnlinkFile* filetag){ 00012 int res=-1; 00013 string fn=sc->getSharedDir()+filetag->getFile(); 00014 GlobalData* gd=GlobalData::get_Instance(); 00015 pthread_mutex_t* mt= gd->get_openedFiles_mutex(); 00016 pthread_mutex_lock(mt); 00017 //1. проверить нет ли его в открытых файлах 00018 auto of=gd->get_OpenedFiles(); 00019 if(of->find(fn)==of->end()){ 00020 //2. если нет, то тогда удалить ссылку 00021 if(unlink(fn.data())<0){ 00022 //3. если не удалится то вернуть -ERRNO 00023 res=-errno; 00024 }else{ 00025 //Если все хорошо вернуть 0 00026 res= 0; 00027 } 00028 } 00029 00030 //4. если есть, то вернуть -1 00031 pthread_mutex_unlock(mt); 00032 return res; 00033 }
1.7.1