如何将错误消息从C传递到Go?

时间:2019-06-20 11:02:06

标签: go cgo

我想将错误消息从C代码传递到Go堆栈。如何使用out参数完成此操作?

如果有人能帮助我,我真的很感激。

1 个答案:

答案 0 :(得分:2)

  

任何C函数(甚至是void函数)都可以多次调用   分配上下文以同时获取返回值(如果有)和   C errno变量为错误(如果_跳过结果值   函数返回void)。

然后在您的C代码中,您所需要做的就是设置“全局” errno变量。

package main


// #include <errno.h>
// int fortytwo()
// {
//      errno = ENOENT;
//      return 42;
// }
import "C"
import "fmt"

func main() {

    n, err = C.fortytwo()
}