0

次のように定義された構造を持つ Point.c という名前のファイルがあります。

Point

また、point_str、point_deserialize という名前の関数が含まれています。

今、これらのような同様のファイルがあります

LinkedList.c, Node.c etc with similar definitions.

現在、dlopen を使用して、これらの関数を別のファイルで動的に呼び出しています。

したがって、型が Point であることがわかった場合は、文字列を作成します。

point_str

dlopen を使用して .so ファイルへのパスを指定して関数を呼び出します。

しかし、構造体のサイズを動的に知ることはできません。それを行う方法はありますか?私は何かをしたい

int size = givemesize("Point", "path_to_so");

これは dlopen に似ていますが、構造体のサイズを知るためのものです。

編集:なぜサイズを知りたいのですか?

そのサイズで、文字列から実際の型まで何でも逆シリアル化しています。だからこそ必要なサイズ。したがって、コマンドラインから Point オブジェクトを逆シリアル化します。したがって、その文字列を使用して、Point.c に存在し、libpoint.so を持つ Point オブジェクトの実際のサイズを知りたいと思います。

4

1 に答える 1