首页 > 解决方案 > 如何从 python 中的 C 结构中获取值?

问题描述

所以我创建了 golang 代码来将一个值传递给一个 C 结构,然后将它返回到一个指针中,这样我就可以在 py.xml 中获取值。但是我可以从 py 中的 C 结构中获取值吗?如果是这样,我该怎么办?我的主要目标是将多个值从 go 传递给 C 结构,然后在 py.xml 中获取这些值。另外,在没有任何内存泄漏的情况下,正确的方法是什么?

这是我的代码:

package main

/*
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>

typedef struct Resp {
    char *response;
    char *responsetwo;
} Resp;

void fill(Resp *r) {
   printf("Original value: %s\n", r->response);
}
*/
import "C"
import (
    "unsafe"
)

func body_string(body string, body_two string) unsafe.Pointer {
    sb := C.CString(body)
    sb_two := C.CString(body_two)

    // adding it to the C struct
    return &C.Resp{
        response: sb,
        responsetwo: sb_two,
    }
}

我不确定这是否是最有效的方法,但这对于大文本值是否可行?谢谢你。

标签: cpython-3.xgo

解决方案


推荐阅读