Эта функция реализует API для изменения названия процесса:
http://lxr.evanmiller.org/http/source/os/unix/ngx_setproctitle.c
59 for (i = 0; environ[i]; i++) {
60 if (ngx_os_argv_last == environ[i]) {
61
62 size = ngx_strlen(environ[i]) + 1;
63 ngx_os_argv_last = environ[i] + size;
64
65 ngx_cpystrn(p, (u_char *) environ[i], size);
66 environ[i] = (char *) p;
67 p += size;
68 }
69 }
70
71 ngx_os_argv_last--;
72
73 return NGX_OK;
74 }
Что я не понимаю, так это то, что после копирования переменных среды в блок, выделенный ngx_alloc(size, log);
, как этот блок связан с блоком argv[]
?
Я не вижу такой логики там.
И есть одна строка, которую я не понимаю:
ngx_os_argv_last--;
Для чего это линия, соединяющая выделенный блок с argv[]
?