Beispiel #1
0
int readArguments(int argc, char *argv[])
{
int i;
char temp[PATH_MAX];

	if(argc < 9)
	{
		printf("Format of arguments is:\n");
		printf("\t-p PRIMARY_HASH_SEED\n");
		printf("\t-s SECONDARY_HASH_SEED\n");
		printf("\t-i INPUT_FILE_TO_JUDGE\n");
		printf("\t-d CATEGORY_FNB_FILES_DIR\n");
		printf("\t-r Related categories in form of \"primary,secondary,bidirectional\". Bidirectional should be 1 for yes, 0 for no. This option should only be supplied once. To include more than one, separate with \"=\".\n");
		printf("Spaces and case matter.\n");
		return -1;
	}
	for(i=1; i<9; i+=2)
	{
		if(strcmp(argv[i], "-p") == 0) sscanf(argv[i+1], "%"PRIx32, &HASHSEED1);
		else if(strcmp(argv[i], "-s") == 0) sscanf(argv[i+1], "%"PRIx32, &HASHSEED2);
		else if(strcmp(argv[i], "-i") == 0)
		{
			judge_file = malloc(strlen(argv[i+1]) + 1);
			sscanf(argv[i+1], "%s", judge_file);
		}
		else if(strcmp(argv[i], "-d") == 0)
		{
			int len = strlen(argv[i+1]);
			fbc_dir = malloc(len + 1);
			sscanf(argv[i+1], "%s", fbc_dir);
			if(fbc_dir[len-1] == '/') fbc_dir[len-1] = '\0';
		}
		else if(strcmp(argv[i], "-r") == 0)
		{
			strncpy(temp, argv[i+1], PATH_MAX-1);
			setupPrimarySecondFromCmdLine(temp);
		}
	}
/*	printf("Primary Seed: %"PRIX32"\n", HASHSEED1);
	printf("Secondary Seed: %"PRIX32"\n", HASHSEED2);
	printf("Learn File: %s\n", judge_file);*/
	return 0;
}
Beispiel #2
0
int readArguments(int argc, char *argv[])
{
int i;
char temp[PATH_MAX];

	if(argc < 13)
	{
		printf("Format of arguments is:\n");
		printf("\t-p PRIMARY_HASH_SEED\n");
		printf("\t-s SECONDARY_HASH_SEED\n");
		printf("\t-i INPUT_DIRECTORY_TO_JUDGE\n");
		printf("\t-d CATEGORY_FNB_FILES_DIR\n");
		printf("\t-c TARGET_CATEGORY\n");
		printf("\t-t THRESHHOLD_NOT_TO_EXCEED_TO_REPORT_NEED_TO_TRAIN\n");
		printf("\t-m NUMBER_OF_THREADS_TO_USE (default: 2 and should be <= NUM_CORES_ON_CPU)\n");
		printf("\t-r Related categories in form of \"primary,secondary,bidirectional\". Bidirectional should be 1 for yes, 0 for no. This option should only be supplied once. To include more than one, separate with \"=\".\n");
		printf("Spaces and case matter.\n");
		return -1;
	}
	for(i = 1; i < argc; i += 2)
	{
		if(strcmp(argv[i], "-p") == 0) sscanf(argv[i+1], "%"PRIx32, &HASHSEED1);
		else if(strcmp(argv[i], "-s") == 0) sscanf(argv[i+1], "%"PRIx32, &HASHSEED2);
		else if(strcmp(argv[i], "-i") == 0)
		{
			judge_dir = malloc(strlen(argv[i+1]) + 1);
			sscanf(argv[i+1], "%s", judge_dir);
		}
		else if(strcmp(argv[i], "-d") == 0)
		{
			int len = strlen(argv[i+1]);
			fnb_dir = malloc(len + 1);
			sscanf(argv[i+1], "%s", fnb_dir);
			if(fnb_dir[len-1] == '/') fnb_dir[len-1] = '\0';
		}
		else if(strcmp(argv[i], "-c") == 0)
		{
			int len = strlen(argv[i+1]);
			train_as_category = malloc(len + 1);
			sscanf(argv[i+1], "%s", train_as_category);
			// This is an optimization to avoid extra checks later
			lowest.primary_name = train_as_category;
		}
		else if(strcmp(argv[i], "-t") == 0)
		{
			sscanf(argv[i+1], "%lf", &threshhold);
			// This is an optimization to avoid extra checks later
			lowest.primary_probScaled = threshhold + 0.1;
		}
		else if(strcmp(argv[i], "-m") == 0)
		{
			sscanf(argv[i+1], "%d", &num_threads);
			FILES_PER_NEED = num_threads * FILES_PER_NEED_MULT;
		}
		else if(strcmp(argv[i], "-r") == 0)
		{
			strncpy(temp, argv[i+1], PATH_MAX-1);
			setupPrimarySecondFromCmdLine(temp);
		}
	}
/*	ci_debug_printf(10, "Primary Seed: %"PRIX32"\n", HASHSEED1);
	ci_debug_printf(10, "Secondary Seed: %"PRIX32"\n", HASHSEED2);
	ci_debug_printf(10, "Learn File: %s\n", judge_file);*/
	return 0;
}