/* * $Log: dummy.c,v $ * Revision 1.6 2002/02/04 15:04:48 host8 * Added '$Id/Log: $' keyword substitution for simple identification version of file. * */ #include #define BUFSIZE 8000 int print_to_stdout(char *s); int print_to_stderr(char *s); int print_to_both(char *s); int write_stream_statistics(FILE *stream, FILE *to_stream); int main(void) { char buf[BUFSIZE]; //setvbuf(stdout, NULL, _IONBF, 0); //setbuf(stdout, NULL); fputs("Statisctics for stdout:\n", stderr); write_stream_statistics(stdout, stderr); fputs("Statisctics for stdout:\n", stderr); write_stream_statistics(stderr, stderr); while (fgets(buf, BUFSIZE - 1, stdin) != NULL) { if (print_to_both(buf)) { print_to_both("print_to_both() error\n"); return 1; } /* fflush(stdout); */ } return 0; } int print_to_stdout(char *s) { return fputs("stdout: ", stdout) == EOF || fputs(s, stdout) == EOF; } int print_to_stderr(char *s) { return fputs("stderr: ", stderr) == EOF || fputs(s, stderr) == EOF; } int print_to_both(char *s) { return print_to_stdout(s) || print_to_stderr(s); } int write_stream_statistics(FILE *stream, FILE *to_stream) { fprintf(to_stream, "_fileno = %d\n", stream->_fileno); fprintf(to_stream, "_flags = %d\n", stream->_flags); fprintf(to_stream, "_IO_read_ptr = %p, _IO_read_base = %p, _IO_read_end = %p, diff = %d\n", stream->_IO_read_ptr, stream->_IO_read_end, stream->_IO_read_base, stream->_IO_read_end - stream->_IO_read_base); fprintf(to_stream, "_IO_write_ptr = %p, _IO_write_base = %p, _IO_write_end = %p, diff = %d\n", stream->_IO_write_ptr, stream->_IO_write_end, stream->_IO_write_base, stream->_IO_write_end - stream->_IO_write_base); fprintf(to_stream, "_IO_buf_base = %p, _IO_buf_end = %p, diff = %d\n", stream->_IO_buf_end, stream->_IO_buf_base, stream->_IO_buf_end - stream->_IO_buf_base); fprintf(to_stream, "_IO_backup_base = %p, _IO_save_base = %p, _IO_save_end = %p, diff = %d\n", stream->_IO_backup_base, stream->_IO_save_end, stream->_IO_save_base, stream->_IO_save_end - stream->_IO_save_base); return 0; }