我想在一个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 stdio 是缓冲的,所以它不会立即产生输出。在 C 程序中,退出 main 或执行 exit() 会运行 atexit 处理程序,其中一个由运行时安装将刷新标准输出缓冲区。您可能需要执行以下操作:
void print() {
printf("just for test");
fflush(stdout);
}
如果您出于速度原因不想每次都这样做,或者将 stdout 刷新到其他地方。
关于golang 无法打印内部字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42569037/