Ошибка при записи в файл abc информации из stdin
Пытаюсь этим кодом записать в файл abc из stdin строку hello world (делаю это так -> echo "hello world" | ./main.c abc)
Сейчас мне выдает ошибку с недостающей скобкой, но мои глаза и мой текстовый редактор этой ошибки не видят :)
Вопрос: в чем все таки ошибка в этой записи ?
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
int main(int argc, char **argv)
{
if (argc == 1) {
printf("getopt test\n");
return 0;
}
if (argc == 2) {
char ch;
FILE * fp;
if((fp = fopen(argv[1], "a")) == NULL) {
printf("Can't open \n");
exit(1);
}
for(;;) {
if (EOF == (ch = getchar())) {
break;
}
fputc(ch, fp);
fputc(ch, stdout);
}
fclose(fp);
}
return 0;
}