프로세스를 시작하는 프로그램을 실행 중이며 프로세스가 내 프로그램에서 사용하는 stdout에 씁니다. 문제는 약 42000 바이트의 출력이 필요하다는 것입니다. stdout 버퍼 크기가 8192 인 것 같아서 42000에 도달 할 때까지 플러시하지 않으려 고합니다. 이것을 설정하는 방법이 있습니까? 서브 프로세스의 코드에표준 출력 버퍼 크기가 증가합니다.
setvbuf (stdout , NULL , _IOFBF , 50000); // ie set it to 50000 bytes
하지만 전혀 작동하지 않는 것 :
나는이 시도. 누구든지 아이디어가 있습니까?
'setvbuf()'는 버퍼에 쓰는 첫 번째 작업 이전에 호출되어야한다는 것에주의하십시오. 이후'setvbuf()'호출은 아무 효과가 없다. –
@JonathanLeffler : 아니요, 나중에 정의되지 않은 동작이 있습니다. 파일이 손상되거나 전체 프로그램 (또는 컴퓨터)이 폭파 될 수 있습니다. –