The OpenNET Project / Index page

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



Индекс форумов
Составление сообщения

Исходное сообщение
"Вызов внешней программы "
Отправлено Flex25, 12-Май-06 00:14 
>Я передаю данные (сторонней) программе sort, она сортирует эти данные, я получаю
>от нее отсортированные данные и печатаю их. Если это не то
>что вам нужно то объясните подробнее в чем отличие.

На основе твоей программы я сделал следующий код:

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int main() {
  int p1[2], p2[2];
  FILE *f1, *f2;
  int i;
  char line[80];
  pipe(p1);
  pipe(p2);
  f1 = fdopen(p1[1], "w");
  f2 = fdopen(p2[0], "r");
  if (fork() == 0) {
    dup2(p1[0], 0); // stdin
    dup2(p2[1], 1); // stdout
    close(p1[1]);
    close(p2[0]);
    execlp("sort", "/usr/local/bin/perl", NULL);
  } else {
    close(p1[0]);
    close(p2[1]);
  }


  // Я передаю интерпретатору Perl код: print 'Hello World!!!';
  fprintf(f1, "print 'Hello World!!!!';");
  fclose(f1);

  // Я читаю результат
  while (fgets(line, sizeof(line), f2) != NULL) {
    printf("Итог выполнения Perl-программы: %s\n", line);
  }
  return 0;
}


В результате я получаю на выходе НЕ "Hello World!!!", "print 'Hello World';", т.е. моя программа не была исполнена.

ЧТО надо сделать, чтобу передать интерпретатору Perl программный код, а потом через пайпы получить результат в свою программу на stdin?

 

Ваше сообщение
Имя*:
EMail:
Для отправки новых сообщений в текущей нити на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



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

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