//模擬了伺服器端 httpd 程序啟動 cgi的過程,
//完整展現了 get,post 方法支援
//等待cgi子程序完全把資料讀取後寫入,
//實際情況應該是使用select 或者 epoll 監聽
//usleep(1000);
//模擬接收 cgi 應答的資料
char buff[256] = ;
length = read(child[0], buff, sizeof(buff));
if (length <= 0)
else
close(child[0]);
if (waitpid(pid, null, 0) < 0)
exit(0);
} else
close(parent[0]);
} //重定向管道的輸出端到標準輸出
if (child[1] != stdout_fileno)
close(child[1]);
} //覆蓋程序空間,設定cgi環境變數
char content_length[128] = ;
sprintf(content_length, "content_length=%u", strlen(request_parameter));
char *exec_ar**[3] = ;
if (execve(cgi_name,ar**,exec_ar**) < 0)
exit(0);
} exit(0);
}
海量儲存系列之三 事務原理
首先是回答上次的問題。假設有這麼一組資料,性別有4種,user id是一對多的關係,如果我想查詢 select from tabwhere user id in and 性別 不明 如何進行索引構建能夠獲得比較好的效果呢?我個人認為,應該建立的是以user id作為前導列,性別作為輔助列的索引,在大...
CTMediator 原理解析(三)
前兩篇文章主要是對這篇文章的內容進行了乙個鋪墊,這裡就一起來看下ctmediator的實現原理 ctmediator是乙個單例,主要是基於mediator模式和target action模式,中間採用了runtime來完成呼叫 id performtarget nsstring targetname...
《解剖PetShop》系列之三
解剖petshop 系列之三 三 petshop資料訪問層之訊息處理 在進行系統設計時,除了對安全 事務等問題給與足夠的重視外,效能也是乙個不可避免的問題所在,尤其是乙個b s結構的軟體系統,必須充分地考慮訪問量 資料流量 伺服器負荷的問題。解決效能的瓶頸,除了對硬體系統進行公升級外,軟體設計的合理...