У меня есть 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
Ты же пайп открыл для записи, а не для чтения.
>Ты же пайп открыл для записи, а не для чтения.вот тут ошибка ---> open(F, "| ./a.out ");
>>Ты же пайп открыл для записи, а не для чтения.
>
>вот тут ошибка ---> open(F, "| ./a.out ");
и какая же тут ошибка ? a.out у меня запускается без проблем>Ты же пайп открыл для записи, а не для чтения.
ну да для чтения, а я в него и ничего не пишу, только считываюГоворю ведь, что если просто a.out запускать с шела, то все пашет, если запускать с cgi скрипта, то с пайпом траблы какие то
>>>Ты же пайп открыл для записи, а не для чтения.
>>
>>вот тут ошибка ---> open(F, "| ./a.out ");
>и какая же тут ошибка ? a.out у меня запускается без проблем
>
>
>>Ты же пайп открыл для записи, а не для чтения.
>ну да для чтения, а я в него и ничего не пишу,
>только считываю
>
>Говорю ведь, что если просто a.out запускать с шела, то все пашет,
>если запускать с cgi скрипта, то с пайпом траблы какие то
>
А разве надо не так:
open(F, "./a.out |");
Если ты читаешь из a.out?
обычно такие вопросы возникают когда есть проблемы с правами доступа.
посмотри последнюю ошибку ввода/вывода. было у меня такое.