golang 无法打印内部字符串

标签 go sdk

我想在一个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/

相关文章:

inheritance - 用于约束和继承集的接口(interface)

objective-c - 仅使用 NSBundle 插入 Xib 的两个按钮。仍然显示TableView

android-studio - 无法找到 AppLovin SDK key 。请添加元数据 android :name ="applovin.sdk.key" android:value ="YOUR_SDK_KEY_HERE" into AndroidManifest. xml

android - 尝试在低于最低 sdk 的设备上安装 apk 时出现“解析错误”

Go - 解决接口(interface) slice 问题的惯用方法

go - 如何使用 golang 运行 dir 命令?

go - 如何通过变量将任意 JSON 映射传递给自定义类型

javascript - 来自 Github 的 Go 依赖项 - 我们能否确定它们将永远可用?

visual-studio - 将 Windows SDK 存储在源代码管理中?

iphone - 阻止 iPhone 应用程序在 iPad 上运行