Beispiel #1
0
void fsyncAndDropCaches(int fd, int code)
{
    fsync(fd);
    fsync(fd);
    writeIntToFile(kDropCaches, code);
    sleep(kCachePurgeSleepDuration);
}
Beispiel #2
0
void setPidOutOfMemoryAdj(int level)
{
    char filename[FILENAME_MAX];

    snprintf(filename, sizeof(filename), "/proc/%d/oom_adj", getpid());
    writeIntToFile(filename, level);
}
Beispiel #3
0
// Sync and cache cleaning functions.  In the old hpux days I was told
// to always call *sync twice. The same advice seems to be still true
// today so *sync is called twice.
// Also we wait 'a little' to give a chance to background threads to
// purge their caches.
void syncAndDropCaches(int code)
{
    sync();
    sync();
    writeIntToFile(kDropCaches, code);
    sleep(kCachePurgeSleepDuration);
}
void encodeFile (FileContainer files, char * msgName, int d) {

	IndexHolder iHolder;
	FILE* msgFile = fopen(msgName, "r");

	files.msgCount = getSize(msgName);
	files.msg = malloc(files.msgCount * sizeof(int));

	if (files.msgCount == 0 || files.keyCount == 0) {
		printMessage(TYPE_ERROR, ERROR_UNKNOWN);
		exit(0);
	} else {
		if (fileExists(encryptedFileName) == 1) {
			remove(encryptedFileName);
		}
		
		iHolder.lastIndex = 30000; // High number so first distance is OK
		
		while (!feof(msgFile) && fscanf(msgFile, "%c", &iHolder.currentChar) == 1) {
			iHolder.currentIndex = findIntRepresentation(files, iHolder, d);
			
			if (iHolder.currentIndex != 0) {
				writeIntToFile(iHolder.currentIndex, encryptedFileName);
			} else {
				writeCharToFile(iHolder.currentChar, encryptedFileName);
			}
			iHolder.lastIndex = iHolder.currentIndex;
		}
	}
	free(files.msg);
	free(files.key);
	fclose(msgFile);
}