void signal_handle() { ras_msg_t data = mq_recv_msg(TELL_MSG, -1, client_id); if(data.type != -1) { printf("%s", data.msg); fflush(stdout); client_signal(); } }
static void mq_recv_msg_noblock( MQ_MODULE_E dest) { mqd_t id; fd_set rfds; unsigned long max_fd; int ret; MQ_MODULE_E from; char recv_data[64]; memset(recv_data, '\0', sizeof(recv_data)); id = mq_get_id (dest); if(id < 0) { DEBUG_PRINTF("mq_get_id failed\n"); return; } max_fd = id + 1; while(1) { FD_ZERO(&rfds); FD_SET(id, &rfds); ret = select(max_fd, &rfds, NULL, NULL, NULL); if (ret >= 0) { if (FD_ISSET(id, &rfds)) { ret = mq_recv_msg(&from, dest, recv_data, sizeof(recv_data)); if(ret<0) { DEBUG_PRINTF("recv_error, ret =%d\n", ret); } else { DEBUG_PRINTF("recv_data=%s, from=%d\n", recv_data, from); } } } } return; }