#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <stdarg.h>

void errmsg_exit(const char *fmt, ... ) {
	va_list args;
	va_start(args, fmt);
	vfprintf(stderr,fmt,args);
	fprintf(stderr,"\n");
	va_end(args);
	exit(EXIT_FAILURE);
}

int main(int argc,char *argv[]) {
	if(argc != 3)
		errmsg_exit("%s","./program file_to_read.txt file_to_write.txt");

	FILE *read = fopen(argv[1],"r");
	FILE *write = fopen(argv[2],"w");

	if(!read || !write)
		errmsg_exit("%s : %s or %s\n",strerror(errno),argv[1],argv[2]);

	int c;
	while((c = fgetc(read)) != EOF)
		fputc(c,write);

	fclose(read);
	fclose(write);

	return 0;
}