int fputc(int ch, FILE *stream)
Функция fputc() записывает символ ch в указанный поток в позицию, соответствующую текущему значению указателя положения в файле, а затем дает приращение указателю положения в файле. Даже если ch был объявлен как int, он конвертируется функцией fputc() в unsigned char. Поскольку аргументы символьного типа при вызове приводятся к целым, обычно в качестве аргументов используются символьные переменные. Если используется целое число, то старший байт попросту отбрасывается.
Функция fputc() возвращает значение записанного символа. В случае ошибки она возвращается EOF. Для файлов, открытых для двоичных операций, значение EOF может быть просто одним из элементов файла, поэтому для определения того, действительно ли произошла ошибка, должна использоваться функция ferror().
void write_string(char *str, FILE *fp)
{
while(*str) if(!ferror(fp)) fputc (*str++ , fp);
}