次のように定義された構造を持つ 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 オブジェクトの実際のサイズを知りたいと思います。