programing

C 자동 플러시(각 쓰기 후 플러시 stdout)에 해당합니까?

padding 2023. 10. 5. 21:15
반응형

C 자동 플러시(각 쓰기 후 플러시 stdout)에 해당합니까?

Perl에서는 다음을 입력할 수 있습니다.

$|++;

STDOUT에 인쇄된 모든 것은 자동으로 플러시()됩니다.

C에 동치가 있습니까?즉, stderr을 자동으로 플러시하는 방식인 모든 printf() 후 stdout을 자동으로 플러시하도록 stdio에 지시할 수 있는 방법이 있습니까?

해라setvbuf(stdout, NULL, _IONBF, 0). 변합니다.stdout완충되지 않은 상태로 (_IONBF) 모드.

한 번도 안 해봤는데요._IOLBF정답일 겁니다

$ man setvbuf
NAME
       setvbuf — assign buffering to a stream

SYNOPSIS
       #include <stdio.h>

       int setvbuf(FILE *restrict stream, char *restrict buf, int type,
           size_t size);

DESCRIPTION
       The functionality described on this reference page is aligned with
       the ISO C standard. Any conflict between the requirements described
       here and the ISO C standard is unintentional. This volume of
       POSIX.1‐2008 defers to the ISO C standard.

       The setvbuf() function may be used after the stream pointed to by
       stream is associated with an open file but before any other operation
       (other than an unsuccessful call to setvbuf()) is performed on the
       stream. The argument type determines how stream shall be buffered, as
       follows:

        *  {_IOFBF} shall cause input/output to be fully buffered.

        *  {_IOLBF} shall cause input/output to be line buffered.

        *  {_IONBF} shall cause input/output to be unbuffered.

setbuf()와 setvbuf()를 살펴봅니다.

언급URL : https://stackoverflow.com/questions/214271/c-equivalent-of-autoflush-flush-stdout-after-each-write

반응형