C 语言中没有内置的发布者-订阅者模型。你可以使用多线程编写一个发布者-订阅者程序。
发布者线程:负责生成消息并将其发送到订阅者。
订阅者线程:负责接收发布者发送的消息。
你可以使用队列来在发布者和订阅者之间传递消息。发布者将消息放入队列,订阅者从队列中读取消息。
这是一份简单的代码示例:
``` #include <pthread.h> #include <stdio.h> #include <stdlib.h>
#define MAX_MESSAGE_LEN 100 #define MAX_QUEUE_LEN 100
char messages[MAX_QUEUE_LEN][MAX_MESSAGE_LEN]; int front = 0, rear = 0; int message_count = 0; pthread_mutex_t queue_mutex; pthread_cond_t queue_not_empty; pthread_cond_t queue_not_full;
void *publisher(void *arg) { while (1) { char message[MAX_MESSAGE_LEN]; sprintf(message, "Message #%d", message_count);
pthread_mutex_lock(&queue_mutex)