Find the portability bug in this byte-copy loop.
C
#include <stdio.h>
int copy_bytes(FILE *input, FILE *output) {
char byte;
while ((byte = fgetc(input)) != EOF) {
if (fputc(byte, output) == EOF) return -1;
}
return ferror(input) ? -1 : 0;
}