URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 6042
[ Назад ]

Исходное сообщение
"Как передать переменные окружения Web-сервера программе через Pipe"

Отправлено Flex25 , 25-Дек-06 11:51 
Моя программа на C++ вызывает через Pipe Perl-интерпретатор, передает ему Perl-скрипт и потом принимает результат работы скрипта.

Как мне Perl-интерпретатору в этом случае передать помино скрипта еще и переменные окружения Web-сервера, такие, как: REQUEST_METHOD, QUERY_STRING и т.д.?

Передаваемые переменные окружения моя C++ программа должна устанавливать сама.


Содержание

Сообщения в этом обсуждении
"Как передать переменные окружения Web-сервера программе чере..."
Отправлено idle , 25-Дек-06 12:03 
>Моя программа на C++ вызывает через Pipe Perl-интерпретатор, передает ему Perl-скрипт и
>потом принимает результат работы скрипта.
>
>Как мне Perl-интерпретатору в этом случае передать помино скрипта еще и переменные
>окружения Web-сервера, такие, как: REQUEST_METHOD, QUERY_STRING и т.д.?
>
>Передаваемые переменные окружения моя C++ программа должна устанавливать сама.
Указывать переменные окружения в качестве опций перл-скрипта.



"Как передать переменные окружения Web-сервера программе чере..."
Отправлено Flex25 , 25-Дек-06 12:18 
>Указывать переменные окружения в качестве опций перл-скрипта.

Пожалуйста, напишите пример как это делать? Заранее спасибо.



"Как передать переменные окружения Web-сервера программе чере..."
Отправлено ctax , 25-Дек-06 13:51 
>>Указывать переменные окружения в качестве опций перл-скрипта.
>
>Пожалуйста, напишите пример как это делать? Заранее спасибо.


#include <stdlib.h>
main()
{
printf("%s",system("/usr/bin/perl script.pl 'param1' 'param2'"));
}


"Как передать переменные окружения Web-сервера программе чере..."
Отправлено Flex25 , 25-Дек-06 16:26 
>#include <stdlib.h>
>main()
>{
>printf("%s",system("/usr/bin/perl script.pl 'param1' 'param2'"));
>}

Это не подходит. Таким образом вы передаете Perl-скрипту параметры командной строки, а не переменные окружения.

В перле параметры командной строки содержатся в массиве @ARGV, а переменные окружения - в массиве @ENV.


Мне-то как раз надо заполнить массив @ENV, но БЕЗ вмешательства в исходный код Perl-скрипта.


"Как передать переменные окружения Web-сервера программе чере..."
Отправлено vic , 25-Дек-06 17:42 

system("ENV1=test1 ENV2=test2 /usr/bin/perl script.pl");

или заюзать putenv()