Matthew <matt(at)ctlno(dot)com>, "'Anand Raman'" <araman(at)india-today(dot)com>,
postgresql <pgsql-general(at)postgresql(dot)org>,
PostgreSQL Development <pgsql-hackers(at)postgresql(dot)org>
Philip Warner <pjw(at)rhyme(dot)com(dot)au> writes:
> There are a few places to check, but a lot less than before. Assuming I
> should just die on any failed write (which seems reasonable),
Yes, I see no point in continuing after a write failure. Just print
the strerror() message and exit.
> how do I
> check for a failed write in a way that works on all Unixes? Is the
> following OK:
> - fwrite: ok if return value equals item count
> - fprintf: ok if return value > 0.
> - fputc: ok if != EOF
Probably fprintf() >= 0 --- according to my specs, it returns the number
of chars emitted, or a negative value on error. The other two are
correct.
Don't forget to check for a successful fclose() too, since otherwise
you won't notice a failure in dumping the last bufferload of data.
I do not recall the success/failure return codes for the zlib calls,
but I assume they check for write failure and reflect it back ...
regards, tom lane