ファイル入出力で、標準入力で指定されたファイルを1文字づつ
別なファイル(ab.c)に書き込むプログラムを作りたいのですが、
どうもうまくいきません。

#include <stdio.h>
#include <stdlib.h>
int main(void)
{
FILE *fp;
char temp;
fp = fopen("ab.c", "w");
while((temp = getc(fp)) != NULL) { putc(temp , fp); }
fclose(fp);
}

ab.cが作成されているので、while文に間違いがあるのだと思いますが、
どうすれば動くようになるのでしょうか?