Linux
父程序可以改變其子程序的環境嗎?
在查看一些實現 FastCGI 客戶端的範例時,我遇到了一些奇怪的程式碼。
#include <fcgi_stdio.h> #include <stdlib.h> int main(void) { while(FCGI_Accept() >= 0) printf("Content-type: text/html\r\n\r\n" "Got a <i>%s</i> request\n", getenv("REQUEST_METHOD")); return 0; }
對我來說,看起來程序總是會得到相同的值
getenv(...)
,但似乎目的是從父程序讀取數據。子程序執行時父程序能否更新子環境?
不。
但是該
FCGI_Accept()
函式可以在每次呼叫它時更新(C 庫的副本)目前程序的環境,這當然是它的作用。確實,在該函式的文件中專門呼叫了
getenv()
不保留呼叫結果。因此,您可以計算此頁面上有多少人閱讀了 doco。(-:進一步閱讀
FCGI_Accept
. FCGI 手冊。Open Market, Inc.。1996 年。存檔於 opensource.apple.com。