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

Исходное сообщение
"pipes and CGI"

Отправлено alexora , 14-Мрт-04 01:36 
У меня есть cgi скрипт, в нем я вызываю open, передав ему команду, типа так :

open(F, "| ./a.out ");

где a.out сишная софтина
В этой сишной софтине я работаю с pipes :

....
sprintf(command,"nslookup %s\0",List[index]);
F = popen(command,"r");
fread(command, 1024, 1, F);
pclose(F);
....

вот. прикол в том, что если я с шела запускаю сишную софтину, то команда, которую я вызываю через пайпы у меня выполняется. А вот когда вызываю сишную софтину через open с cgi скрипта, то ничего не пайпится. Мне просто надо считывать то что команда выплевует - через пайпы это элементарно, так как работаешь аналогично с файлом.
В чем проблема не подскажете ? Почему с под cgi с папами траблы ?

thanx


Содержание

Сообщения в этом обсуждении
"pipes and CGI"
Отправлено ovax , 15-Мрт-04 03:26 
Ты же пайп открыл для записи, а не для чтения.


"pipes and CGI"
Отправлено ovax , 15-Мрт-04 03:28 
>Ты же пайп открыл для записи, а не для чтения.

вот тут ошибка --->  open(F, "| ./a.out ");


"pipes and CGI"
Отправлено alexora , 15-Мрт-04 18:39 
>>Ты же пайп открыл для записи, а не для чтения.
>
>вот тут ошибка --->  open(F, "| ./a.out ");
и какая же тут ошибка ? a.out у меня запускается без проблем

>Ты же пайп открыл для записи, а не для чтения.
ну да для чтения, а я в него и ничего не пишу, только считываю

Говорю ведь, что если просто a.out запускать с шела, то все пашет, если запускать с cgi скрипта, то с пайпом траблы какие то


"pipes and CGI"
Отправлено Дима , 16-Мрт-04 16:32 
>>>Ты же пайп открыл для записи, а не для чтения.
>>
>>вот тут ошибка --->  open(F, "| ./a.out ");
>и какая же тут ошибка ? a.out у меня запускается без проблем
>
>
>>Ты же пайп открыл для записи, а не для чтения.
>ну да для чтения, а я в него и ничего не пишу,
>только считываю
>
>Говорю ведь, что если просто a.out запускать с шела, то все пашет,
>если запускать с cgi скрипта, то с пайпом траблы какие то
>


А разве надо не так:
open(F, "./a.out |");
Если ты читаешь из a.out?


"pipes and CGI"
Отправлено игорь , 17-Мрт-04 10:44 
обычно такие вопросы возникают когда есть проблемы с правами доступа.
посмотри последнюю ошибку ввода/вывода. было у меня такое.