Um processo pai pode mudar o ambiente do seu filho?

1

Ao olhar alguns exemplos para implementar um cliente FastCGI, encontrei um código curioso.

#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;
}

Para mim, parece que o processo sempre obteria o mesmo valor para getenv(...) , mas parece que a intenção é ler os dados do processo pai.

O processo pai pode atualizar o ambiente filho enquanto o processo filho está em execução?

    
por Kotte 06.12.2017 / 11:25

1 resposta

3

Não.

Mas a função FCGI_Accept() pode atualizar (a cópia da biblioteca C) o ambiente do processo atual toda vez que é chamado, o que obviamente é o que acontece.

De fato, não reter o resultado de chamar getenv() é especificamente chamado no documento dessa função. Então você pode contar quantas pessoas nesta página lêem o documento. (-:

Leitura adicional

  • FCGI_Accept . Manual FCGI . Open Market, Inc .. 1996. Arquivado em opensource.apple.com.
por 06.12.2017 / 13:41