Linux

父程序可以改變其子程序的環境嗎?

  • December 6, 2017

在查看一些實現 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。

引用自:https://unix.stackexchange.com/questions/409153