I've been checking out the code of a lot of my favorite programs written in C, and I just don't understand... Why do they sometimes output text using printf(, sometimes fprintf( to stdout and sometimes fprintf( to stderr??? What's the difference?

Thanks.