В одной из моих программ есть несколько клиентов, и каждый клиент имеет свой собственный буфер.В бесконечном цикле я проверяю, есть ли у клиента какие-либо данные для записи на диск.Если это так, то я делаю то же самое и продолжаю.
Теперь, поскольку клиент записывает данные, которые на самом деле не находятся под моим контролем (результат некоторых вычислений), мне нужен динамический буфер.Таким образом, псевдокод будет выглядеть следующим образом:
//If data is ready
//Append(client_id, line)
void Append(int client_id, char *line) {
if(client_id.buffer == NULL) {
buffer = (char*)malloc(BUFFERSIZE * sizeof(char));
//Copy line into buffer
} else {
//Realloc the buffer if insufficient space and append this
//line to the existing buffer
}
}
, иначе можно использовать простую очередь сообщений.Я продолжал бы добавлять любые сообщения (строки) в существующую очередь и затем читать их.Есть ли какой-нибудь другой лучший подход?