diff --git a/src/image.c b/src/image.c index 625e7df6..53139642 100644 --- a/src/image.c +++ b/src/image.c @@ -966,10 +966,15 @@ image load_image_cv(char *filename, int channels) if( (src = cvLoadImage(filename, flag)) == 0 ) { - fprintf(stderr, "Cannot load image \"%s\"\n", filename); - char buff[256]; - sprintf(buff, "echo %s >> bad.list", filename); - system(buff); + char shrinked_filename[1024]; + if (strlen(filename) >= 1024) sprintf(shrinked_filename, "name is too long"); + else sprintf(shrinked_filename, "%s", filename); + fprintf(stderr, "Cannot load image \"%s\"\n", shrinked_filename); + FILE* fw = fopen("bad.list", "a"); + fwrite(shrinked_filename, sizeof(char), strlen(shrinked_filename), fw); + char *new_line = "\n"; + fwrite(new_line, sizeof(char), strlen(new_line), fw); + fclose(fw); return make_image(10,10,3); //exit(EXIT_FAILURE); } @@ -1764,10 +1769,15 @@ image load_image_stb(char *filename, int channels) int w, h, c; unsigned char *data = stbi_load(filename, &w, &h, &c, channels); if (!data) { - fprintf(stderr, "Cannot load image \"%s\"\nSTB Reason: %s\n", filename, stbi_failure_reason()); - char buff[256]; - sprintf(buff, "echo %s >> bad.list", filename); - system(buff); + char shrinked_filename[1024]; + if (strlen(filename) >= 1024) sprintf(shrinked_filename, "name is too long"); + else sprintf(shrinked_filename, "%s", filename); + fprintf(stderr, "Cannot load image \"%s\"\nSTB Reason: %s\n", shrinked_filename, stbi_failure_reason()); + FILE* fw = fopen("bad.list", "a"); + fwrite(shrinked_filename, sizeof(char), strlen(shrinked_filename), fw); + char *new_line = "\n"; + fwrite(new_line, sizeof(char), strlen(new_line), fw); + fclose(fw); return make_image(10, 10, 3); //exit(EXIT_FAILURE); }