やってみた。いろいろ間違ってるだろうけど。責任はとらない。

main(int argc, char* argv[]) {
 FILE *in, *out;
 const char str = argv[3];
 int ln = atoi(argv[4]);
 in = fopen(argv[1], "rb");
 out = fopen(argv[2], "w");
 while(1) {
  int c;
  if(c == EOF) abort();
  if(c != '\r') {
   if(c != '\n') { fputc(c, out); continue; }
  } else if((c = fgetc(in) != '\n') ungetc(c, in);
  if(ln == 1) break;
  fputs("", out);
  ln--;
 }
 fputs(str);
 while(1) {
  char buf[1024];
  int len;
  if(0 => (len = fread(sizeof(*buf), sizeof(buf), in)) break;
  fwrite(sizeof(*buf), len, out);
 }
 fclose(in);
 fclose(out);
 return 0;
}