Remove setvbuf(<handle>, NULL, _IOLBF, 0) calls for Win32

On Win32 the setvbuf function requires the last parameter to be size between 2 and INT_MAX bytes, so the calls always failed. Since the whole point of the calls is to set line-buffered mode for the file handle and that's not supported on Win32 anyway, conditionally remove them.

Signed-off-by: Filip Navara <filip.navara@gmail.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
This commit is contained in:
Filip Navara 2009-07-27 10:02:04 -05:00 committed by Anthony Liguori
parent 8fde6546fb
commit bf65f53fba
2 changed files with 5 additions and 1 deletions

3
exec.c
View File

@ -1491,7 +1491,8 @@ void cpu_set_log(int log_flags)
static char logfile_buf[4096]; static char logfile_buf[4096];
setvbuf(logfile, logfile_buf, _IOLBF, sizeof(logfile_buf)); setvbuf(logfile, logfile_buf, _IOLBF, sizeof(logfile_buf));
} }
#else #elif !defined(_WIN32)
/* Win32 doesn't support line-buffering and requires size >= 2 */
setvbuf(logfile, NULL, _IOLBF, 0); setvbuf(logfile, NULL, _IOLBF, 0);
#endif #endif
log_append = 1; log_append = 1;

3
vl.c
View File

@ -5755,7 +5755,10 @@ int main(int argc, char **argv, char **envp)
exit(1); exit(1);
} }
#ifndef _WIN32
/* Win32 doesn't support line-buffering and requires size >= 2 */
setvbuf(stdout, NULL, _IOLBF, 0); setvbuf(stdout, NULL, _IOLBF, 0);
#endif
init_timers(); init_timers();
if (init_timer_alarm() < 0) { if (init_timer_alarm() < 0) {