1
からパラメータとして文字列の配列を渡す私は1つのC関数を持っている:は、C関数に行く
int cgroup_change_cgroup_path(const char * path, pid_t pid, const char *const controllers[])
私はCGO使用することにより、外出先の言語でそれを呼びたいです。 3番目のパラメータを文字列のC配列を受け入れて渡す方法。
からパラメータとして文字列の配列を渡す私は1つのC関数を持っている:は、C関数に行く
int cgroup_change_cgroup_path(const char * path, pid_t pid, const char *const controllers[])
私はCGO使用することにより、外出先の言語でそれを呼びたいです。 3番目のパラメータを文字列のC配列を受け入れて渡す方法。
cヘルパー関数を使用して配列を構築し、使用することができます。ここで
は同じ問題を解決する:ジョン・バーハム
によって// C helper functions:
static char**makeCharArray(int size) {
return calloc(sizeof(char*), size);
}
static void setArrayString(char **a, char *s, int n) {
a[n] = s;
}
static void freeCharArray(char **a, int size) {
int i;
for (i = 0; i < size; i++)
free(a[i]);
free(a);
}
// Build C array in Go from sargs []string
cargs := C.makeCharArray(C.int(len(sargs)))
defer C.freeCharArray(cargs, C.int(len(sargs)))
for i, s := range sargs {
C.setArrayString(cargs, C.CString(s), C.int(i))
}
golangnutsポスト