5

私はshm_opencgo で使用します。shm_openLinuxでは3つの引数で定義されています

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

一方、OSX (Darwin) では、3rd モード フラグはオプションです。

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

これにより、OSX でモードを渡そうとすると、CGO で問題が発生します。2つしか期待されていないのに、3つの引数を渡すと不平を言います。

どうすればこれを回避できますか?

4

1 に答える 1

6

いつものように、啓示は 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"
于 2013-11-21T17:55:34.757 に答える