2012-04-28 5 views
0

Здравствуйте, я в настоящее время пытаюсь напечатать определенную часть командной строки при запуске моей программы. Я в настоящее время запустить мою программу следующим образомКак напечатать часть команды командной строки

zcat gcc | sim 

Что я пытаюсь сделать это распечатать на отдельный файл «GCC» части командной строки. Есть ли способ сделать это. Спасибо за помощь

Я забыл упомянуть это в с не C++

+0

Buddy, google для основных аргументов функции ['argc, argv'] – vard

+0

это не передается как аргумент главной функции, который я уже пробовал – Sean

+0

Извините, не могли бы вы еще раз объяснить, что вы хотите сделать? – vard

ответ

0

Программа «сим» только знает, что у него есть данные из стандартного ввода. Он не знает, что передает данные в stdin - это может быть другая программа или перенаправленный вход или с устройства.

Из 'sim' POV есть только данные от stdin.

IF вы можете гарантии, что вы всегда будете получать данные из другого процесса через трубу, вы можете начать поиск процесса заголовков, соответствующих «сим» процесс, и от последующего извлечения информации из процесса сопутствующих процессов. Тем не менее, я подозреваю, что это больше, чем вы готовы пойти.

+0

есть какой-то способ просто прочитать то, что было введено в командной строке – Sean

+0

Нет «простого» способа. Существует трудный путь, который предполагает, что вы тратитесь через дерево процессов, чтобы найти связанный с ним процесс, который запускает simd stdin, а затем разрабатывает аргументы связанного процесса. Честно говоря, за то, чего вы хотите достичь; Я бы просто расширил вашу программу «sim», чтобы иметь аргумент, определяющий, какой файл читать. Таким образом, у вас есть имя файла из основного аргумента vector(). – Jonathan

0

Вы передаете вывод zcat (через трубу) в свою программу, он не знает деталей аргументов, переданных zcat. Вы можете явно передать его как часть входного потока, хотя,

(echo 'zcat gcc'; zcat gcc) | sim 

но это хак. Возможно, будет нормально, если вы планируете запускать только свою программу .