static int seekChars(void* state, long offset, int whence) { long absPos; char* pszError; switch (whence) { case SEEK_SET: absPos = offset; storagePosition(&pszError, (int)state, absPos); break; case SEEK_END: absPos = sizeOfFile(state) + offset; storagePosition(&pszError, (int)state, absPos); break; case SEEK_CUR: absPos = storageRelativePosition(&pszError, (int)state, offset); break; default: return -1; } storageFreeError(pszError); return absPos; }
char *readFile(const char *file) { FILE *f = openOrDie(file,"r"); int N = sizeOfFile(file); char *str =(char *) malloc(N+1); fread(str,N,1,f); str[N]=0; return str; }
void InvertedIndex(void){ listOfCollection = CollectionToList(); N = Length(listOfCollection); int L = LengthForMalloc(listOfCollection); ptr = malloc(sizeof(BSTree) * L); for(int i = 0; i < N; i++) { url = valueReturn(listOfCollection,i); urltx = strcat(url,txt); f = fopen(urltx, "r"); sizefile = fopen(urltx, "r"); size = sizeOfFile(sizefile); Q = getBSTree(f,size); ptr[i]= Q; fclose(f); fclose(sizefile); } WithoutTxt = CollectionToList(); AllWords = AllWordsToList(N,listOfCollection,WithoutTxt); int numberofWords = Length(AllWords); FILE *Inverted = fopen("Inverted.txt","w"); for (int test = 0; test <= numberofWords; test++){ searchTerm= valueReturn(AllWords, test); fprintf(Inverted, "%s",searchTerm); for(int iterator = 0; iterator <= N; iterator++){ // Set the search term as the term returned by ALL found = BSTreeFind(ptr[iterator],searchTerm); if(found == 1){ URLname = valueReturn(WithoutTxt, iterator); fprintf(Inverted," %s", URLname); } else{ // Do nothing } } fprintf(Inverted,"\n"); } }
/* If the jar size is less than zero it is an error code. */ long midpGetJarSize(void* handle) { MidpJarInfo* pJarInfo = (MidpJarInfo*)handle; long size; size = sizeOfFile(pJarInfo->fileObj.state); if (size < 0) { return MIDP_JAR_IO_ERROR; } return size; }
unsigned int* count_From_File(FILE* fp) { char buf[1000]; //Make an array to hold all the charcters in the string unsigned int i; unsigned int* characters = (unsigned int*)malloc(sizeof(unsigned int)*256); //Initialize the array and count the number of characters memset(characters,0,256); int j; //Get the file size in bytes int fileSizeLeft = sizeOfFile(fp); int numReads = 0; if(fileSizeLeft%1000 != 0) { numReads = fileSizeLeft/1000 + 1; } else { numReads = fileSizeLeft/1000; } for(j=0;j<numReads;j++) { if(fileSizeLeft < 1000) { fread(buf, sizeof(char),fileSizeLeft, fp); count_Characters(buf, characters, fileSizeLeft); } else { fread(buf, sizeof(char),1000, fp); count_Characters(buf, characters, 1000); } fileSizeLeft -= 1000; } return characters; }
void loadParametersFile(const char *fname, Parameters *parameters, const char *distanceUnits, const char *energyUnits) { Integer N = sizeOfFile(fname); char Error[256]; FILE *f=fopen(fname,"r"); if(!f) { sprintf(Error,"could not open file %s",fname); throw new Exception(NULL,Error); } char *str = (char *)malloc(N+1); fread(str,1,N,f); str[N]=0; fclose(f); StringParser sp(str); ParseParameters parseParameters(distanceUnits,energyUnits,parameters); Integer line,col; if(!parseParameters(&sp)) { char expected[512]; parseParameters.getExpected(expected,512); calculateLineAndCol( str, //const char *text, parseParameters.getErrorPos(),//const char *pos, &line, //Integer *line, //out &col //Integer *col //out ); char Error[512]; sprintf(Error,"File %s: Parse error at line %d col %d: %s",fname,(int)line,(int)col,expected); throw new Exception(NULL,Error); } }
/* Send a file across the network. The filename argument * will be sent to indicate to the other side what it should * be saved as. */ int writeFile(BIO *conn, char *filename, char *writeName) { //if no alternate name supplied, just use it's actual name if(writeName == NULL) writeName = filename; FILE *ifp = fopen(filename, "rb"); if(ifp == NULL) { perror("writeFile"); //send NO_SUCH_FILE as the file length to indicate file is not coming writeInt(conn, NO_SUCH_FILE); return NO_SUCH_FILE; } //send the file length in 4 bytes int fileSize = sizeOfFile(filename); if(writeInt(conn, fileSize) == -1) return -1; if(fileSize == -1) return -1; //send the filename first in a simple packet if(writeString(conn, writeName) < 1) return -1; /* Now transfer the file */ char fileBuffer[BUFSIZ]; while(fileSize > 0) { //read a chunk int numRead = fread(fileBuffer, 1, BUFSIZ, ifp); if(numRead == 0) break; //send that chunk over the network int status = writeAll(conn, fileBuffer, numRead); if(status < 1) return status; fileSize -= numRead; } if(fileSize != 0) { fprintf(stderr, "writeFile(): fileSize non-zero after sending. Incomplete??\n"); return -1; } return 1; }
void inputToOutputFile(FILE* input, FILE* output, charTranslation* characters) { char buffer[1000]; size_t fileSize = sizeOfFile(input); unsigned int num_chars = fileSize,i,j, numReads = fileSize/1000 +(fileSize%1000==0?0:1), charsToRead; std::vector <bool> writeToFile; for(i=0;i<numReads;i++) { if(fileSize>=1000) { charsToRead = 1000; } else { charsToRead = fileSize; } for(j=0;j<charsToRead;j++) { fread(buffer, sizeof(char),charsToRead, input ); writeToFile.insert(writeToFile.end(), characters[buffer[j]].v->begin(), characters[buffer[j]].v->end()); } fileSize-=1000; } writeBoolVectorToFile(writeToFile,output); return; }
int main(int argc, char **argv) { int error = 0; readBuffer *B = 0L; size_t L = 0; size_t H = 0; size_t R = 0; // If we are given a file, use that, otherwise, use ourself. // filename = argv[argc-1]; L = sizeOfFile(filename); H = L/2; R = L - H; fprintf(stderr, "L=%d H=%d R=%d\n", L, H, R); // Suck in the whole file, compute the correct md5 checksum on it // char *c = new char [L]; FILE *F = fopen(filename, "r"); fread(c, sizeof(char), L, F); fclose(F); full = md5_string(0L, c, L); part = md5_string(0L, c+H, R); delete [] c; B = new readBuffer(filename, 999); error += doTest(B, full, "#1 (read)"); B->seek(0); error += doTest(B, full, "#2 (seek)"); B->seek(H); error += doTest(B, part, "#2 (seek half)"); delete B; B = new readBuffer(filename, 0); error += doTest(B, full, "#3 (mmap)"); B->seek(0); error += doTest(B, full, "#2 (mmap seek)"); B->seek(H); error += doTest(B, part, "#2 (mmap seek half)"); delete B; B = new readBuffer(filename, 0); error += doTestRead(B, full, 10000, "#4 (read buffer=mmap readsize=10000)"); delete B; B = new readBuffer(filename, 100); error += doTestRead(B, full, 10000, "#4 (read buffer=100 readsize=10000)"); delete B; B = new readBuffer(filename, 2000); error += doTestRead(B, full, 1000, "#4 (read buffer=2000 readsize=1000)"); delete B; B = new readBuffer(filename, L); error += doTestRead(B, full, L+1000, "#5 (read buffer=filesize readsize=filesize+1000)"); delete B; return(error); }
int main(){ int N_nodes = sizeOfFile("nodepos.dat",2); int N_patch = sizeOfFile("patch_node.dat",3); InstArry(N_nodes,N_patch); readNodePos(); readpatchNode(); int curnum = 0; for(int i=1;i<=N_patch;i++){ for(int j=1;j<=3;j++){ curnum = (i-1)*3+j; edgeInfo[curnum][1] = i; edgeInfo[curnum][2] = j; if (patchNode[i][next(j)]<patchNode[i][next(next(j))]){ edgeInfo[curnum][3] = patchNode[i][next(j)]; edgeInfo[curnum][4] = patchNode[i][next(next(j))]; }else{ edgeInfo[curnum][3] = patchNode[i][next(next(j))]; edgeInfo[curnum][4] = patchNode[i][next(j)]; } } } sortArry(N_patch); edgeLink[1][1] = edgeInfo[1][3]; edgeLink[1][2] = edgeInfo[1][4]; patch_edge[edgeInfo[1][1]][edgeInfo[1][2]] = 1; int N_edge = 1; for(int i=2;i<=3*N_patch;i++){ if((edgeInfo[i][3]!=edgeInfo[i-1][3])||(edgeInfo[i][4]!=edgeInfo[i-1][4])){ N_edge++; edgeLink[i][1] = edgeInfo[i][3]; edgeLink[i][2] = edgeInfo[i][4]; patch_edge[edgeInfo[i][1]][edgeInfo[i][2]] = N_edge; }else{ patch_edge[edgeInfo[i][1]][edgeInfo[i][2]] = N_edge; } } int Nb = 0; InstArryAdd(N_patch,N_edge,Nb); CalcEFieldPos(N_edge,N_patch); CalcHfieldPos(N_edge,N_patch, 0.01); //Output all the data (test) writeGrid("pos_nodes.dat","vertiic.dat",N_nodes,N_patch); writeFiledPos(N_edge,N_patch); //form a general matrix of coefs for(int i = 1;i<=N_patch;i++){ // all electric field global numbers corresponding to givern patch for(int j=1;j<=3;j++){ coefMat[i][2*j-1] = 2*patch_edge[i][j]-1; coefMat[i][2*j] = 2*patch_edge[i][j]; } coefMat[i][7] = 2*N_edge+2*i-1; coefMat[i][8] = 2*N_edge+2*i; for(int j=1;j<=3;j++){ if (PointInTriangle(i, 4*patch_edge[i][j]-3)== true){ coefMat[i][2*(j+4)-1] = 4*patch_edge[i][j]-3; } else{ coefMat[i][2*(j+4)-1] = 4*patch_edge[i][j]-2; } if (PointInTriangle(i, 4*patch_edge[i][j]-1)== true){ coefMat[i][2*(j+4)] = 4*patch_edge[i][j]-1; } else{ coefMat[i][2*(j+4)] = 4*patch_edge[i][j]; } } coefMat[i][15] = 4*N_edge+4*i-3; coefMat[i][16] = 4*N_edge+4*i-2; coefMat[i][17] = 4*N_edge+4*i-1; coefMat[i][18] = 4*N_edge+4*i; // area of the triangle double x1 = nodePos[edgeLinkS[patch_edge[i][2]][2]][1]; double y1 = nodePos[edgeLinkS[patch_edge[i][2]][2]][2]; double x2 = nodePos[edgeLinkS[patch_edge[i][3]][2]][1]; double y2 = nodePos[edgeLinkS[patch_edge[i][3]][2]][2]; double x3 = nodePos[edgeLinkS[patch_edge[i][1]][2]][1]; double y3 = nodePos[edgeLinkS[patch_edge[i][1]][2]][2]; area[i] = fabs(x1*(y2-y3)+x2*(y3-y1)+x3*(y1-y2)); //area[i] =x1; } ofstream out1; out1.open("Matrix.dat"); for(int i = 1;i<=N_patch;i++){ out1<<i<<" "<<coefMat[i][1]<<" "<<coefMat[i][2]<<" "<<coefMat[i][3]<<" "<<coefMat[i][4]<<" "<<coefMat[i][5]<<" "<<coefMat[i][6]<<" "<<coefMat[i][7]<<" "<<coefMat[i][8]<<" "<<coefMat[i][9]<<" "<<coefMat[i][10]<<" "<<coefMat[i][11]<<" "<<coefMat[i][12]<<" "<<coefMat[i][13]<<" "<<coefMat[i][14]<<" "<<coefMat[i][15]<<" "<<coefMat[i][16]<<" "<<coefMat[i][17]<<" "<<coefMat[i][18]<<" "<<area[i]<<endl; //out1<<i<<" "<<nodePos[edgeLinkS[patch_edge[i][2]][2]][2]<<" "<<nodePos[edgeLinkS[patch_edge[i][1]][1]][2]<<" "<<nodePos[edgeLinkS[patch_edge[i][1]][2]][2]<<endl; } return 0; }
void parseCommandArguments( int argc, // in char *argv[], //in Parameters *params, //in/out char *paramFile, //out char *additionalParams, //out char *Error, // aux char *prefix //out ) { additionalParams[0]=0; if(argc<2) { puts("Usage: ./calculateFreeEnergy prefix [parameters.txt] [Additional parameters string]"); puts("For proper work of the program one shoud have the following files:"); puts("\t- ${prefix}gamma${site}.3d"); puts("\t- ${prefix}c${site}.3d"); puts("\t- ${prefix}clong${site}.3d"); puts("\t- ${prefix}X.grd"); puts("\t- ${prefix}Y.grd"); puts("\t- ${prefix}Z.grd"); puts("If no parameters file is given, the file ${prefix}_parameters.txt is used"); throw new Exception(NULL,"incorrect command line arguments"); return; } strcpy(prefix,argv[1]); if(argc>2) strcpy(paramFile,argv[2]); else sprintf(paramFile,"%sparameters.txt",prefix); if(argc>3) { strcpy(additionalParams,argv[3]); } Integer L=sizeOfFile(paramFile); FILE *f=fopen(paramFile,"r"); if(L==0 || f==NULL) { sprintf(Error,"Cannot read parameters form file %s",paramFile); throw new Exception(NULL,Error); } char *str = (char*)malloc(L+1); fread(str,1,L,f); fclose(f); StringParser spFile(str); ParseParameters parseParameters("Bohr", //const char *distanceUnits, "Hartree", //const char * energyUnits, params //Parameters *parameters ); parseParameters.parse(&spFile); free(str); StringParser spArg(additionalParams); parseParameters.parse(&spArg); }
// Main Function. int main(void) { int fd,c, res; struct termios oldtio,newtio; char buf[256]; // File variables. FILE *filefp = NULL; unsigned int fileSize = 0; int bytesRead = 0; char message[] = "Hello There stranger. This is a test.\n"; char temp; broadCastPacket_t packet; fd = open(XBEEPORT, O_RDWR | O_NOCTTY ); if (fd <0) {perror(XBEEPORT); exit(-1); } tcgetattr(fd,&oldtio); /* save current port settings */ bzero(&newtio, sizeof(newtio)); newtio.c_cflag = BAUDRATE | CRTSCTS | CS8 | CLOCAL | CREAD; newtio.c_iflag = IGNPAR; newtio.c_oflag = 0; /* set input mode (non-canonical, no echo,...) */ newtio.c_lflag = 0; newtio.c_cc[VTIME] = 0; /* inter-character timer unused */ newtio.c_cc[VMIN] = 1; /* blocking read until 5 chars received */ tcflush(fd, TCIFLUSH); tcsetattr(fd,TCSANOW,&newtio); // Open file for reading binary filefp = fopen(FILENAME, "rb"); if (filefp == NULL) { fprintf(stderr, "Could not open file %s\n", FILENAME); exit(1); } fileSize = sizeOfFile(filefp); buf[0] = 'P'; buf[1] = 'A'; buf[2] = 'C'; buf[3] = 1; // 1 indicates file transfer packet. buf[4] = strlen(message); // copy size of file. write(fd,buf,5); // send header. // now send payload write(fd,message,strlen(message)); // now send payload //res = write(fd,"abcdh",5); /* while (!feof(filefp)) { // Send a file over serial... bytesRead = readFileBytes(filefp, buf,255); write(fd,buf,bytesRead); } */ tcsetattr(fd,TCSANOW,&oldtio); // restore old port settings. return 0; }
int clientUploadFile(BIO *conn, char *filename) { /* CALCULATE AND STORE ANY RECORDS OF THIS FILE WE NEED * BEFORE UPLOADING IT */ FILE *ifp = fopen(filename, "rb"); if ( ifp == NULL ) return NO_SUCH_FILE; //generate key and iv for encryption unsigned char *key = randomBytes(32); unsigned char *iv = randomBytes(32); //encrypt the file int status = encryptFile(filename, TEMP_ENCRYPTED_FILENAME, key, iv); if(status == -1) { fprintf(stderr, "Failed to encrypt %s in clientUploadFile()\n", filename); return -1; } //we need to store NUM_HASHES salts and digests for later verification unsigned char *salts[NUM_HASHES]; unsigned char *hashes[NUM_HASHES]; for(int i=0; i<NUM_HASHES; ++i) { //generate a random salt salts[i] = randomBytes(SALT_LENGTH); //compute the digest for the file with that salt hashes[i] = calculateMD5(TEMP_ENCRYPTED_FILENAME, salts[i], SALT_LENGTH); if(hashes[i] == NULL) { fprintf(stderr, "Failed to calculate digest in clientUploadFile()\n"); return -1; } } //store all this data for later status = addRecord(filename, 0, hashes, salts, key, iv); if(status == -1) { fprintf(stderr, "addRecord() failed for in clientUploadFile()\n"); return -1; } //free the memory we allocated above for(int i=0; i < NUM_HASHES; ++i) { free(salts[i]); free(hashes[i]); } free(key); free(iv); /* START THE ACTUAL COMMUNICATION WITH THE SERVER */ //send the code which causes the server to call serverUploadFile() if(writeInt(conn, UPLOAD_FILE_CODE) == -1) return -1; //send the fileSize int fileSize = sizeOfFile(TEMP_ENCRYPTED_FILENAME); if(writeInt(conn, fileSize) == -1) return -1; printf("NOTE: Original size: %f MB. Encrypted size: %f MB.\n", (double)sizeOfFile(filename)/MEGABYTE, (double)fileSize/MEGABYTE); //wait for an int telling us the balance owing unsigned int fee = readInt(conn); if(fee > 0) { printf("Purchase %d more cloud dollar(s) to upload this file.\n", fee); removeRecord(filename); return -1; } else if(fee < 0) return -1; //send the file if(writeFile(conn, TEMP_ENCRYPTED_FILENAME, filename) < 1) return -1; unlink( TEMP_ENCRYPTED_FILENAME ); printf("Succesfully uploaded the file.\n"); return 0; }