The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (Perl)
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

perl, backticks, exec etc, alexey9 (??), 04-Окт-06, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


5. "perl, backticks, exec etc"  +/
Сообщение от alexey9email (??), 04-Окт-06, 23:07 
>open(PIPE, "| openssl ... |");
>print PIPE $dataToSign;
>print while(<PIPE>);
>close PIPE;

Хм. Странно но он результат в консоль валит при таком подходе
...
my $out;
...
$out = <PIPE>;
...
Опять не въезжаю - вроде маны уже перечитал все

Ответить | Правка | Наверх | Cообщить модератору

6. "perl, backticks, exec etc"  +/
Сообщение от AMDmi3 (?), 04-Окт-06, 23:34 
>>open(PIPE, "| openssl ... |");
>>print PIPE $dataToSign;
>>print while(<PIPE>);
>>close PIPE;
>Хм. Странно но он результат в консоль валит при таком подходе

Точно, так тоже нельзя :)
Правильный ответ - в perldoc perlipc, глава `Bidirectional Communication with Another Process'

#!/usr/bin/perl

use FileHandle;
use IPC::Open2;

$pid = open2(*OUT, *IN, "md5");

print IN "somedata";
close IN;
$result = <OUT>;
close OUT;

waitpid($pid, 0); # чтобы зомбей не плодить

print "Result: $result\n";

Ответить | Правка | Наверх | Cообщить модератору

7. "perl, backticks, exec etc"  +/
Сообщение от alexey9email (??), 04-Окт-06, 23:41 
>>>open(PIPE, "| openssl ... |");
>>>print PIPE $dataToSign;
>>>print while(<PIPE>);
>>>close PIPE;
>>Хм. Странно но он результат в консоль валит при таком подходе
>
>Точно, так тоже нельзя :)
>Правильный ответ - в perldoc perlipc, глава `Bidirectional Communication with Another Process'
>
>
>#!/usr/bin/perl
>
>use FileHandle;
>use IPC::Open2;
>
>$pid = open2(*OUT, *IN, "md5");
>
>print IN "somedata";
>close IN;
>$result = <OUT>;
>close OUT;
>
>waitpid($pid, 0); # чтобы зомбей не плодить
>
>print "Result: $result\n";
блин, интересно а на площадке (на хостинге) дадут процесс запустить отдельный. Думаю нет. Надо проверить. В любом случае спасибо.

Ответить | Правка | Наверх | Cообщить модератору

8. "perl, backticks, exec etc"  +/
Сообщение от AMDmi3 (?), 04-Окт-06, 23:45 
>блин, интересно а на площадке (на хостинге) дадут процесс запустить отдельный. Думаю
>нет. Надо проверить. В любом случае спасибо.
А, по твоему, `` не запускают отдельный процесс?

Кстати, имеет смысл посмотреть готовые модули.
http://search.cpan.org/~oesi/OpenSSL-0.09/OpenSSL/Digest.pm

Ответить | Правка | Наверх | Cообщить модератору

9. "perl, backticks, exec etc"  +/
Сообщение от alexey9email (??), 04-Окт-06, 23:47 
>>блин, интересно а на площадке (на хостинге) дадут процесс запустить отдельный. Думаю
>>нет. Надо проверить. В любом случае спасибо.
>А, по твоему, `` не запускают отдельный процесс?
>
>Кстати, имеет смысл посмотреть готовые модули.
>http://search.cpan.org/~oesi/OpenSSL-0.09/OpenSSL/Digest.pm

Не, уже смотрел, я немогу их собственно установить на площадке. Т.е. модули то ставятся а вот libopenssl'я нет и не будет, странно, но такая фот площадка.

Ответить | Правка | Наверх | Cообщить модератору

10. "perl, backticks, exec etc"  +/
Сообщение от alexey9email (??), 04-Окт-06, 23:49 

К тому же я как-то не въехал как ему подсовывать ключ. Документацию посмотрел так краем глаза - там почти ничего нет в man'е, просто времени не было.
Ответить | Правка | Наверх | Cообщить модератору

12. "perl, backticks, exec etc"  +/
Сообщение от alexey9email (??), 04-Окт-06, 23:57 
>
>К тому же я как-то не въехал как ему подсовывать ключ. Документацию
>посмотрел так краем глаза - там почти ничего нет в man'е,
>просто времени не было.


да. static

Ответить | Правка | Наверх | Cообщить модератору

11. "perl, backticks, exec etc"  +/
Сообщение от AMDmi3 (?), 04-Окт-06, 23:51 
>Не, уже смотрел, я немогу их собственно установить на площадке. Т.е. модули
>то ставятся а вот libopenssl'я нет и не будет, странно, но
>такая фот площадка.
Хмм. Там openssl что-ли статически собран? У меня на FreeBSD /usr/bin/openssl слинкован с /usr/lib/libssl.so.4 и /lib/libcrypto.so.4. Ну, описанный способ с open2 вполне работоспособен, в случае чего.
Ответить | Правка | К родителю #9 | Наверх | Cообщить модератору

13. "perl, backticks, exec etc"  +/
Сообщение от alexey9email (??), 04-Окт-06, 23:58 
>>Не, уже смотрел, я немогу их собственно установить на площадке. Т.е. модули
>>то ставятся а вот libopenssl'я нет и не будет, странно, но
>>такая фот площадка.
>Хмм. Там openssl что-ли статически собран? У меня на FreeBSD /usr/bin/openssl слинкован
>с /usr/lib/libssl.so.4 и /lib/libcrypto.so.4. Ну, описанный способ с open2 вполне работоспособен,
>в случае чего.


да, static.
Хотя попробую может в $HOME собрать. Может удастся. А как его юзать, походу вопрос сразу. Как подгрузить ключ?

Ответить | Правка | Наверх | Cообщить модератору

14. "perl, backticks, exec etc"  +/
Сообщение от AMDmi3 (?), 05-Окт-06, 01:59 
>да, static.
>Хотя попробую может в $HOME собрать. Может удастся. А как его юзать,
>походу вопрос сразу. Как подгрузить ключ?
Ты про модуль? Не знаю, не пользовал. Если про open2, там можно ключи указывать и даже несколько команд, а-ля open2(*A, *B, "openssl -key1 | cat -n | wc -l | md5")
Ответить | Правка | Наверх | Cообщить модератору

15. "perl, backticks, exec etc"  +/
Сообщение от alexey9email (??), 06-Окт-06, 05:31 
>>да, static.
>>Хотя попробую может в $HOME собрать. Может удастся. А как его юзать,
>>походу вопрос сразу. Как подгрузить ключ?
>Ты про модуль? Не знаю, не пользовал. Если про open2, там можно
>ключи указывать и даже несколько команд, а-ля open2(*A, *B, "openssl -key1
>| cat -n | wc -l | md5")

Спасибо, Уважаемый, за помощь &mdash все отлично работает. :)

Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру