コード例 #1
0
ファイル: midpJar.c プロジェクト: jiangxilong/yari
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;
}
コード例 #2
0
ファイル: readFile.cpp プロジェクト: voovrat/RISM-MOL-Tools
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;
}
コード例 #3
0
ファイル: inverted.c プロジェクト: vivianlikeyeah/Ashesh-3
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");

 	}

}
コード例 #4
0
ファイル: midpJar.c プロジェクト: jiangxilong/yari
/* 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;
}
コード例 #5
0
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;
}
コード例 #6
0
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);

    }

}
コード例 #7
0
ファイル: sslCommunicate.c プロジェクト: 10515255/3231
/* 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;
}
コード例 #8
0
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;
}
コード例 #9
0
ファイル: test-readBuffer.C プロジェクト: bryopsis/trinity
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);
}
コード例 #10
0
ファイル: main.cpp プロジェクト: kudshevZh/Matrix-free-2D
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;
}
コード例 #11
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);

}
コード例 #12
0
ファイル: send_file.c プロジェクト: gustavors88/augreality
// 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;
}
コード例 #13
0
ファイル: cloudProtocol.c プロジェクト: 10515255/3231
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;
}