これがクライアントプログラムの私のコードの一部です
union sigval toServer;
char *test = "dummy";
serverPID = atol(buf2);
toServer.sival_ptr = (void *)test;
// Register to server
if (sigqueue(serverPID, SIGUSR1, toServer) == -1) { // register
fprintf(stderr," Server isn't ready!\n");
return 1;
}
これがサーバープログラムの私のハンドラーです
static void register_handler(int signo, siginfo_t* info, void *context) {
registeredProgramID = info->si_pid;
if(info->si_value.sival_ptr != NULL)
fprintf(stderr," sent value is = %s \n" ,(char *)info->si_value.sival_ptr);
}
エラーはありませんが、送信したものを取得できません。変なものが印刷されます。