我在cgo上使用shm_open
。 shm_open
在Linux上用3个参数定义
int shm_open(const char *name, int oflag, mode_t mode);
而在OSX(达尔文)上,第3模式标志是可选的。
int shm_open(const char *name, int oflag, ...);
当尝试在OSX上传递模式时,这会产生CGO问题。它抱怨我传递了3个参数,当时只有2个参数。
我该如何解决这个问题?
答案 0 :(得分:5)
像往常一样,这个启示在发布到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"