2017-03-03 1 views
-3

C++ 프로젝트에서 sdk를 사용하고 싶습니다. 그러나 나는 문제가있다. 문제는 주로 이것과 같다. 나는 c 함수를 사용하여 go 프로그램을 실행 중이며, 코드는 아래에 단순화 될 수있다.golang이 내부 문자열을 인쇄 할 수 없습니다.

// #include <stdio.h>                                   
// #include <stdlib.h>                                  
/*                                       
void print() {                                    
    printf("just for test");                                  
}                                        
*/                                       
import "C"                                     

func main() {                                     
    C.print()                                     
} 

하지만 결과는 아무도없는 기본 패키지는 더 출력이 없습니다. 누가 문제인지 알 수 있습니까? 매우 감사합니다!

+0

스팸으로 분류하지 마십시오. C는 전혀 관련이없는 언어입니다. – Olaf

+0

나는 그것을 얻는다 -_-, 고맙다, –

답변

0

C stdio가 버퍼되므로 출력이 즉시 생성되지 않습니다. C 프로그램에서 main을 종료하거나 exit()를 수행하면 atexit 핸들러가 실행되며, 그 중 하나는 런타임에 의해 설치되어 stdout 버퍼를 플러시합니다. 가능성이 높습니다 :

void print() { 
    printf("just for test"); 
    fflush(stdout); 
} 

또는 속도상의 이유로 매번 수행하지 않으려면 stdout을 다른 곳으로 플러시하십시오.

+0

golang의 출구가 stdio 완충기를 내리지 않을 것이다? –

+0

그건 사실입니다. –

관련 문제