int str_len = read(m_events[i].data.fd, buf, BUF_SIZE);
我有這個,我將數據讀入的BUF聲明如下如何在緩衝區中的數據複製到某處內存(字符*)
char buf[BUF_SIZE];
我所試圖做的是,我想獲取數據並將其交給我定義的WorkHanndler,只不過是一個線程池。
而且功能
void ServerManager::addWork(int sender, char *data){
Work* work = new Work(sender, data);
m_workHandler->addWork(work);
}
所以我需要一個字符指針,它指向我剛纔讀的數據。由於緩衝區被定義爲一個數組,我將無法將其傳遞給函數。
另外,你們認爲這是一個在服務器設計方面的好主意嗎?我正在從緩衝區中讀取數據,不解析它,只是將原始數據交給線程池(插入到隊列中)。線程池有一個隊列,五個單獨的線程競爭使用互斥鎖和條件變量從隊列中獲取作業。完成作業後,單獨的線程會將結果寫入輸出緩衝區。請讓我知道它是否有缺點,並且你們有更好的主意。提前致謝。
你可能想要的數據尺寸加入該功能。 – DanDan 2011-06-16 10:57:05