【问题标题】:golang can not print inner stringgolang无法打印内部字符串
【发布时间】:2017-03-03 01:28:53
【问题描述】:

我想在一个 c++ 项目中使用 go sdk。但是我遇到了问题,问题主要是这样的。我正在使用c函数运行一个go程序,代码可以简化为下面。

主包

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

 func main() {                                                                                                                                                
     C.print()                                                                                                                                                
 } 

但是结果是none,没有输出。谁能说说是什么问题?非常感谢!

【问题讨论】:

  • 不要垃圾标签。 C 是一种完全不相关的语言。
  • 我明白了-_-,谢谢

标签: go sdk


【解决方案1】:

C stdio 是缓冲的,因此它不会立即产生输出。在 C 程序中,退出 main 或执行 exit() 会运行 atexit 处理程序,其中一个由运行时安装将刷新标准输出缓冲区。您可能需要这样做:

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

如果您出于速度原因不想每次都这样做,或者在其他地方刷新标准输出。

【讨论】:

  • 所以在 golang 中退出不会刷新 stdio 缓冲区?
  • 相当肯定这是真的。
猜你喜欢
  • 2015-11-16
  • 1970-01-01
  • 1970-01-01
  • 2011-06-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多