Status CreateDirectories(const OsPath& path, mode_t mode, bool breakpoint) { if(path.empty()) return INFO::OK; struct stat s; if(wstat(path, &s) == 0) { if(!S_ISDIR(s.st_mode)) // encountered a file WARN_RETURN(ERR::FAIL); return INFO::OK; } // If we were passed a path ending with '/', strip the '/' now so that // we can consistently use Parent to find parent directory names if(path.IsDirectory()) return CreateDirectories(path.Parent(), mode, breakpoint); RETURN_STATUS_IF_ERR(CreateDirectories(path.Parent(), mode)); errno = 0; if(wmkdir(path, mode) != 0) { debug_printf("CreateDirectories: failed to mkdir %s (mode %d)\n", path.string8().c_str(), mode); if (breakpoint) WARN_RETURN(StatusFromErrno()); else return StatusFromErrno(); } return INFO::OK; }
TInt CTestWideApi :: wremove_val2() { wchar_t *dirName = L"C:\\wremoveDir1"; wchar_t *fileName1 = L"C:\\wremoveDir1\\file1.txt"; //file doesnot exist TInt ret = -1; errno = 0; if(wmkdir(dirName ,S_IWUSR) < 0) { INFO_PRINTF1(_L("Failed to create the parent directory")); return KErrGeneral ; } ret = wremove(fileName1); if(ret != -1 && errno == 0) { INFO_PRINTF1(_L("wremove failed")); return KErrGeneral; } ret = wremove(dirName); if(ret != 0) { INFO_PRINTF1(_L("wremove failed")); return KErrGeneral; } return KErrNone ; }
TInt CTestWideApi::wfdopen_ivalm1() { int wfd; int ret_wmkdir = wmkdir(L"C:\\ggg" , S_IWUSR); if(ret_wmkdir) { _LIT(Kerr , "Failed to make dir") ; INFO_PRINTF1(Kerr) ; return KErrGeneral ; } if((wfd=wopen(L"C:\\ggg\\lll.txt", O_WRONLY | O_CREAT | O_TRUNC, 0777))<0) { _LIT(Kopen,"Failed to open file"); INFO_PRINTF1(Kopen); wrmdir(L"C:\\ggg"); return KErrGeneral; } FILE *fp =wfdopen(wfd ,NULL); if(NULL != fp) { wunlink(L"C:\\ggg\\lll.txt"); wrmdir(L"C:\\ggg"); return KErrGeneral; } close(wfd); wunlink(L"C:\\ggg\\lll.txt"); wrmdir(L"C:\\ggg"); return KErrNone; }
TInt CTestWideApi::wremove_val3() { TInt nameRead; TInt retnVal; int retn = KErrGeneral; _LIT( Klen, "Parameter1" ); TBool res = GetIntFromConfig(ConfigSection(), Klen, nameRead); if(!res) { _LIT(Kerr , "Failed to read the value") ; INFO_PRINTF1(Kerr) ; return KErrGeneral ; } _LIT( Klen2, "Parameter2" ); res = GetIntFromConfig(ConfigSection(), Klen2, retnVal); if(!res) { _LIT(Kerr , "Failed to read the value") ; INFO_PRINTF1(Kerr) ; return KErrGeneral ; } wchar_t* dirName = L"C:\\wremoveDir3"; int ret1 = wmkdir(dirName, S_IWUSR); if(!ret1) { int ret = wremove(dirName); if(!ret && !retnVal) { INFO_PRINTF1( _L("Passed...")); retn = KErrNone; } else if(ret && retnVal) { INFO_PRINTF1( _L("Passed...")); retn = KErrNone; } else { INFO_PRINTF1( _L("Failed...")); } } else { if(retnVal) { INFO_PRINTF1( _L("Passed...")); retn = KErrNone; } else { INFO_PRINTF1( _L("Failed...")); } } return retn; }
OMRawStorage* OMXMLStorage::openNewDataStream(const wchar_t* uri) { TRACE("OMXMLStorage::openNewDataStream"); PRECONDITION("XML document raw storage has filename", _storage->fileName() != 0); // uri is assumed to be 'stream directory' / 'stream file name' as // created in getDataStreamEntityValue() OMDiskRawStorage* storage = 0; wchar_t* base = getBaseFilePath(_storage->fileName()); // start by creating the directory wchar_t* workBuffer = new wchar_t[wcslen(uri) + 1]; wcscpy(workBuffer, uri); wchar_t* sep = wmemchr(workBuffer, L'/', wcslen(uri)); ASSERT("New DataStream uri starts with a directory", sep != 0); *sep = L'\0'; wchar_t* filepath = new wchar_t[wcslen(workBuffer) + 1]; wcsconvertURItoFilepath(workBuffer, filepath); wchar_t* fullFilepath = new wchar_t[wcslen(base) + wcslen(filepath) + 1]; wcscpy(fullFilepath, base); wcscat(fullFilepath, filepath); wmkdir(fullFilepath); delete [] workBuffer; delete [] filepath; delete [] fullFilepath; // remove the file and then open new modify filepath = new wchar_t[wcslen(uri) + 1]; wcsconvertURItoFilepath(uri, filepath); fullFilepath = new wchar_t[wcslen(base) + wcslen(filepath) + 1]; wcscpy(fullFilepath, base); wcscat(fullFilepath, filepath); wremove(fullFilepath); try { storage = OMDiskRawStorage::openNewModify(fullFilepath); } catch (...) { storage = 0; } delete [] filepath; delete [] fullFilepath; delete [] base; return storage; }
TInt CTestWideApi::wremove_val1() { wchar_t *dirName = L"C:\\wremoveDir"; wchar_t *fileName1 = L"C:\\wremoveDir\\file1.txt"; wchar_t *fileName2 = L"C:\\wremoveDir\\file2.txt"; TInt ret = -1; errno = 0; if(wmkdir(dirName ,S_IWUSR) < 0) { INFO_PRINTF1(_L("Failed to create the parent directory")); return KErrGeneral ; } FILE *fp = wfopen(fileName1, (wchar_t *)"w"); if(fp == NULL) { INFO_PRINTF1(_L("Failed to create the child directory")); return KErrGeneral ; } fclose(fp); fp = wfopen(fileName2, (wchar_t *)"w"); if(fp == NULL) { INFO_PRINTF1(_L("Failed to create the child directory")); return KErrGeneral ; } fclose(fp); ret = wremove(fileName1); if(ret != 0) { INFO_PRINTF1(_L("wremove failed")); wunlink(fileName1); return KErrGeneral; } ret = wremove(fileName2); if(ret != 0) { INFO_PRINTF1(_L("wremove failed")); wunlink(fileName2); return KErrGeneral; } ret = wremove(dirName); if(ret != 0) { INFO_PRINTF1(_L("wremove failed")); return KErrGeneral; } return KErrNone ; }
TInt CTestWideApi::wfreopen_valinv() { TPtrC nameRead; _LIT( KString, "Parameter1" ); TBool res = GetStringFromConfig(ConfigSection(), KString, nameRead); if(!res) { _LIT(Kerr , "Failed to read string") ; INFO_PRINTF1(Kerr) ; return KErrGeneral ; } int ret_wmkdir = wmkdir(L"C:\\ggg" , S_IWUSR); if((errno == EEXIST) || (!ret_wmkdir)) { TBuf8<100> buf; buf.Copy(nameRead); char* filename = (char*) buf.Ptr(); filename[buf.Length()]='\0'; wchar_t *pathName = (wchar_t *)malloc(30*sizeof(wchar_t)); if(pathName==NULL) { wrmdir(L"C:\\ggg"); return KErrNoMemory; } size_t siz = mbstowcs(pathName, filename, 30); wunlink(pathName) ; FILE *fp = wfreopen(pathName ,L"w",stdout); if(fp == NULL) { _LIT(Kropen , " Failed to reopen file " ) ; INFO_PRINTF1(Kropen) ; wrmdir(L"C:\\ggg"); free(pathName); return KErrNone; } else { wrmdir(L"C:\\ggg"); free(pathName); return KErrGeneral; } } else { _LIT(Kerr , "Failed to make dir") ; INFO_PRINTF1(Kerr) ; return KErrGeneral ; } }
int create_directory( wchar_t *d ) { int ok = 0; struct stat buf; int stat_res = 0; while( (stat_res = wstat(d, &buf ) ) != 0 ) { if( errno != EAGAIN ) break; } if( stat_res == 0 ) { if( S_ISDIR( buf.st_mode ) ) { ok = 1; } } else { if( errno == ENOENT ) { wchar_t *dir = wcsdup( d ); dir = wdirname( dir ); if( !create_directory( dir ) ) { if( !wmkdir( d, 0700 ) ) { ok = 1; } } free(dir); } } return ok?0:-1; }
TInt CTestWideApi::wfdopen_ivalm() { TPtrC nameRead; _LIT( KString, "Parameter1" ); TBool res = GetStringFromConfig(ConfigSection(), KString, nameRead); if(!res) { _LIT(Kerr , "Failed to read string") ; INFO_PRINTF1(Kerr) ; return KErrGeneral ; } int ret_wmkdir = wmkdir(L"C:\\ggg" , S_IWUSR); if((errno == EEXIST) || (!ret_wmkdir)) { TBuf8<100> buf; int wfd; buf.Copy(nameRead); char* filemode = (char*) buf.Ptr(); filemode[buf.Length()]='\0'; wchar_t *dmode = (wchar_t *)malloc(30*sizeof(wchar_t)); if(dmode==NULL) { wrmdir(L"C:\\ggg"); return KErrNoMemory; } size_t siz = mbstowcs(dmode, filemode, 30); wunlink(L"C:\\ggg\\lll.txt"); if((wfd=wopen(L"C:\\ggg\\lll.txt", O_WRONLY | O_CREAT | O_TRUNC, 0777))<0) { _LIT(Kopen,"Failed to open file"); INFO_PRINTF1(Kopen); wrmdir(L"C:\\ggg"); free(dmode) ; return KErrGeneral; } else { FILE *fp =wfdopen(wfd ,dmode); if(NULL == fp) { _LIT(Kopen,"wfdopen failed"); INFO_PRINTF1(Kopen); close(wfd); wunlink(L"C:\\ggg\\lll.txt"); wrmdir(L"C:\\ggg"); free(dmode) ; return KErrNone; } else { wunlink(L"C:\\ggg\\lll.txt"); wrmdir(L"C:\\ggg"); free(dmode) ; return KErrGeneral; } } } else { _LIT(Kerr , "Failed to make dir") ; INFO_PRINTF1(Kerr) ; wunlink(L"C:\\ggg\\lll.txt"); wrmdir(L"C:\\ggg"); return KErrGeneral ; } }
TInt CTestWideApi::wfreopen_val() { TPtrC nameRead; _LIT( KString, "Parameter1" ); TBool res = GetStringFromConfig(ConfigSection(), KString, nameRead); if(!res) { _LIT(Kerr , "Failed to read string") ; INFO_PRINTF1(Kerr) ; return KErrGeneral ; } int ret_wmkdir = wmkdir(L"C:\\ggg" , S_IWUSR); if((errno == EEXIST) || (!ret_wmkdir)) { TBuf8<100> buf; int wfd; FILE *fp; buf.Copy(nameRead); char c = 'z'; char* filename = (char*) buf.Ptr(); filename[buf.Length()]='\0'; wchar_t *pathName = (wchar_t *)malloc(30*sizeof(wchar_t)); if(pathName==NULL) { wrmdir(L"C:\\ggg"); return KErrNoMemory; } size_t siz = mbstowcs(pathName, filename, 30); wunlink(pathName) ; if((wfd=wopen(pathName, O_WRONLY | O_CREAT | O_TRUNC, 0666))<0) { _LIT(Kopen,"Failed to open file"); INFO_PRINTF1(Kopen); wrmdir(L"C:\\ggg"); free(pathName); return KErrGeneral; } else { write(wfd,&c,1); } close(wfd); if((fp=wfreopen(pathName ,L"r",stdin))==NULL) { _LIT(Kropen , " Failed to reopen file " ) ; INFO_PRINTF1(Kropen) ; wrmdir(L"C:\\ggg"); free(pathName); return KErrGeneral; } char * filen="C:\\tem.txt"; unlink(filen); int fd=open(filen, O_WRONLY | O_CREAT | O_TRUNC, 0666); if(fd<0) { _LIT(Kopen,"Failed to open file"); INFO_PRINTF1(Kopen); wrmdir(L"C:\\ggg"); free(pathName); return KErrGeneral ; } else { write(fd,&c,1); } close(fd); fclose(fp); unlink(filen); wunlink(pathName); wrmdir(L"C:\\ggg"); free(pathName); return KErrNone ; } else { _LIT(Kerr , "Failed to make dir") ; INFO_PRINTF1(Kerr) ; return KErrGeneral ; } }
// ----------------------------------------------------------------------------- //Function Name : wfdopen_val //API Tested : wfdopen //TestCase Description: testing the behaviour of wfdopen for valid arguments // initialized to NULL. // ----------------------------------------------------------------------------- TInt CTestWideApi::wfdopen_val() { TPtrC nameRead; wchar_t *pathName = NULL; _LIT( KString, "Parameter1" ); TBool res = GetStringFromConfig(ConfigSection(), KString, nameRead); if(!res) { _LIT(Kerr , "Failed to read string") ; INFO_PRINTF1(Kerr) ; return KErrGeneral ; } int ret_wmkdir = wmkdir(L"C:\\ggg" , S_IWUSR); if((errno == EEXIST) || (!ret_wmkdir)) { TBuf8<100> buf; int wfd; FILE *fp; buf.Copy(nameRead); char* filename = (char*) buf.Ptr(); filename[buf.Length()]='\0'; pathName = (wchar_t *)malloc(30*sizeof(wchar_t)); if(pathName==NULL) { wrmdir(L"C:\\ggg"); return KErrNoMemory; } size_t siz = mbstowcs(pathName, filename, 30); wunlink(pathName) ; if((wfd=wopen(pathName, O_WRONLY | O_CREAT | O_TRUNC, 0666))<0) { _LIT(Kopen,"Failed to open file"); INFO_PRINTF1(Kopen); wrmdir(L"C:\\ggg"); free(pathName); return KErrGeneral; } else { if(NULL == (fp =wfdopen(wfd ,L"w"))) { _LIT(Kopen,"wfdopen failed"); INFO_PRINTF1(Kopen); wrmdir(L"C:\\ggg"); free(pathName); return KErrGeneral; } char *buffer="Writing to the file"; size_t size=strlen(buffer); if(size!=(fwrite(buffer,1,size,fp))) { _LIT(Kopen,"fwrite failed"); INFO_PRINTF1(Kopen); wrmdir(L"C:\\ggg"); free(pathName); return KErrGeneral; } } fclose(fp); wunlink(pathName); wrmdir(L"C:\\ggg"); free(pathName); return KErrNone; } else { _LIT(Kerr , "Failed to make dir") ; INFO_PRINTF1(Kerr) ; wrmdir(L"C:\\ggg"); return KErrGeneral ; } }