私はこのC関数を持っています。
void execMessage(int sockfd,void *structCHARMS, ClientData *client)
{
ClientData *client_recv = (ClientData *) structCHARMS;
client->local_addr=client_recv->local_addr;
client->mode = client_recv->mode;
char*msg;
CharmsMsg chmsg = {charms_msg_map[XTypes_CONFIG_PARAM].msg_code, client, 1184};
msg = encode(&chmsg, "0.01");
ssize_t n = 0;
n = send(sockfd,msg,strlen(msg), 0);
}
これは、TCP クライアントに接続された従来の TCP サーバーのメイン関数から呼び出されます。メッセージを作成し(特定の関数エンコードを使用)、これをサーバーに送信します。
問題は、この関数を同じファイルにmain()
挿入すると正しく機能しますが、これを別のファイルに挿入すると、プログラムの実行中に「セグメンテーション エラー フォールト」が発生することです。
誰でも私を助けることができますか?ありがとう