gpt4 book ai didi

go - 在 Go 中使用可变参数 C 函数

转载 作者:IT王子 更新时间:2023-10-29 01:26:50 24 4
gpt4 key购买 nike

我将 shm_open 与 cgo 一起使用。 shm_open 在 Linux 上用 3 个参数定义

int shm_open(const char *name, int oflag, mode_t mode);

而在 OSX (Darwin) 上,第三模式标志是可选的。

int shm_open(const char *name, int oflag, ...);

当尝试在 OSX 上通过模式时,这会导致 CGO 出现问题。它提示我传递了 3 个参数,而预期只有 2 个。

我该如何解决这个问题?

最佳答案

像往常一样,启示在发布到 SO 后 1 秒出现。您实际上可以在 CGO 评论部分中声明函数,因此您所要做的就是使用这样的包装器。

/*
#include <stdio.h>

int shm_open2(const char *name, int oflag, mode_t mode) {
return shm_open(name, oflag, mode);
}
*/
import "C"

关于go - 在 Go 中使用可变参数 C 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20128297/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com