Tag: pipe

Проблемы с fork (), pipe (), dup2 () и exec () в C

Вот мой код: #include #include #include #include #include #define NUMPIPES 2 int main(int argc, char *argv[]) { char *bBuffer, *sPtr, *aPtr = NULL, *pipeComms[NUMPIPES], *cmdArgs[10]; int fdPipe[2], pCount, aCount, i, status, lPids[NUMPIPES]; pid_t pid; pipe(fdPipe); while(1) { bBuffer = readline(“Shell> “); if(!strcasecmp(bBuffer, “exit”)) { return 0; } sPtr = bBuffer; pCount = -1; do { […]

Что означает вертикальная труба (|) в C ++?

У меня есть код C ++ в одной из моих книг по программированию: WNDCLASSEX wndClass = { 0 }; wndClass.cbSize = sizeof(WNDCLASSEX); wndClass.style = CS_HREDRAW | CS_VREDRAW; Что делает единственный канал в программировании Windows C ++?

pipe stdout и stderr для двух разных процессов в сценарии оболочки?

У меня есть трубопровод, который просто command1 | command2 Итак, stdout команды1 переходит в command2, а stderr команды1 переходит к терминалу (или где бы то ни было, где находится командная строка). Как я могу command3 stderr команды1 в третий процесс ( command3 ), в то время как stdout все еще собирается command2?

Как использовать символ трубы через exec в Java

Я использую следующий код, чтобы получить информацию о всех процессах, запущенных в системе: Process p = Runtime.getRuntime().exec(“ps aux”); BufferedReader stdInput = new BufferedReader(new InputStreamReader(p.getInputStream())); BufferedReader stdError = new BufferedReader(new InputStreamReader(p.getErrorStream())); Я хочу фильтровать ps aux down с символом трубы, поэтому я использую это: Process p = Runtime.getRuntime().exec(“ps aux | grep java”); Он переходит в ErrorStream. […]

Может ли popen () создавать двунаправленные трубы, например pipe () + fork ()?

Я реализую конвейер на смоделированной файловой системе на C ++ (в основном с C). Он должен запускать команды в оболочке хоста, но выполнять сам трубопровод в имитируемой файловой системе. Я мог бы достичь этого с помощью системных вызовов pipe() , fork() и system() , но я бы предпочел использовать popen() (который обрабатывает создание канала, форматирование […]

Общая память между двумя процессами (приложениями)

Я не могу найти полезного ответа на этот вопрос, хотя несколько раз его спрашивали по-другому. Я хочу разделить память между двумя процессами (два разных приложения), чтобы один из них мог писать в эту память, а другой мог читать. Возможно ли это в .NET? Как? благодаря

Получение вывода из приложения оболочки / dos в приложение Delphi

У меня есть приложение командной строки, закодированное в delphi, которое мне нужно вызвать из обычного настольного приложения (также закодированного в delphi). Короче говоря, я хочу вызвать приложение командной строки и отобразить текст, который он выводит «live» в списке. Прошло много времени с тех пор, как я играл с оболочкой, но я отчетливо помню, что для […]

Подключение n команд с помощью труб в оболочке?

Я пытаюсь реализовать оболочку в C. Я могу просто выполнить простые команды с простым execvp (), но одним из требований является управление такими командами: «ls -l | head | tail -4» с «для ‘и только один оператор pipe ()’, перенаправляющий stdin и stdout. Теперь, после нескольких дней, я немного потерялся. N = Количество простых команд […]

Обнаруживать, является ли stdin терминалом или трубой?

Когда я выполняю « python » из терминала без аргументов, он вызывает интерактивную оболочку Python. Когда я запускаю « cat | python » с терминала, он не запускает интерактивный режим. Так или иначе, не получив никакого ввода, он обнаружил, что он подключен к трубе. Как бы я сделал подобное обнаружение в C или C ++ […]

Как подключить stderr, а не stdout?

У меня есть программа, которая записывает информацию в stdout и stderr , и мне нужно grep через то, что приходит в stderr , не обращая внимания на stdout . Я могу, конечно, сделать это за 2 шага: command > /dev/null 2> temp.file grep ‘something’ temp.file но я предпочел бы иметь возможность делать это без временных […]

Давайте будем гением компьютера.