R!sh! Ответов: 2

Передача аргументов командной строки в файл C и возврат ответов из файла C


У меня есть файл языка Си с моим алгоритмом в нем, и я сделал аргументы командной строки. Я скомпилировал файл и получил также выходной файл ассемблера. Теперь мне нужно передать значения в мой выходной файл c из скрипта perl и получить обратно значения из файла C. Нужна помощь.
заранее спасибо.

Что я уже пробовал:

I am not very familiar with perl scripting.

Garth J Lancaster

просто чтобы уточнить

а) у вас есть программа "с"
б) программа "с" принимает аргументы командной строки
в) программа " С " работает
d) программа 'c' возвращает значения через ?стандартный вывод
д) Вы хотите вызвать программу 'c' из perl, передать аргументы программы 'c' и собрать ее выходные данные

"d" - это тот, который вы на самом деле не очень хорошо описали - как программа " c " возвращает данные -
f) как код выхода (если это просто целое число, например)
ж) в виде файла
h) он пишет в stdout

подтверждение (или нет) того, что понимание может помочь нам помочь вам

о, и еще, вы работаете на Windows, *nix, .....

Richard MacCutchan

Вы просто добавляете параметры в командную строку вашего исполняемого файла:

your.exe параметр1 параметр2 ... параметрn

Что касается изучения Perl, то Google найдет для вас много ссылок.

R!sh!

извините, что не предоставил должной информации. Файл C просто печатает выходные данные. Этот выход мне и нужен. Код таков, что, как только данные будут напечатаны, он остановит выполнение, и Ваше разъяснение будет правильным.

R!sh!

как мне получить обратно данные в файл c. Я напечатал вывод с помощью printf.

R!sh!

Я использую linux( fedora 22)

Garth J Lancaster

Я опубликовал решение ниже, используя "backticks" - много способов освежевать кошку в Perl есть

Richard MacCutchan

Отправьте вывод в файл, либо в коде программы, либо через перенаправление командной строки.

R!sh!

сбор выходных печатных строк невозможен?

Richard MacCutchan

Да, это возможно, как я предположил выше.

2 Ответов

Рейтинг:
8

Garth J Lancaster

возможно, вам придется попробовать несколько различных подходов - в Perl есть куча вариантов - как уже говорили другие, Google найдет некоторые, но вот простой вариант, используя "обратные палочки"

my $str = `your-prog arg1 arg2 .. argn`;


$str будет содержать результат ('stdout') от вашего-prog


Рейтинг:
13

CPallini

Вы можете найти много примеров и учебных пособий в интернете, просто используя Google. Смотрите, например:
Запуск внешних программ из Perl с системой[^].