我想将错误消息从C代码传递到Go堆栈。如何使用out参数完成此操作?
如果有人能帮助我,我真的很感激。
答案 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()
}