Вопросы по теме 'dup2'

Зомби-процесс и форк
у меня такой код... c = fork(); if(c==0) { close(fd[READ]); if (dup2(fd[WRITE],STDOUT_FILENO) != -1) execlp("ssh", "ssh", host, "ls" , NULL); _exit(1); } close(fd[WRITE]); fd[READ] и fd[WRITE] — это дескрипторы файла...
2861 просмотров
schedule 30.03.2022

Перенаправить FROM stderr на другой файловый дескриптор
Моя программа вызывает библиотечные функции, которые печатают в stderr. Я хочу вмешаться, чтобы все вызовы записи в дескриптор файла № 2 вместо этого отправлялись куда-то еще. Вот моя первая попытка: bool redirect_stderr (int fd) { return...
3301 просмотров
schedule 01.03.2022

Может кто-нибудь объяснить, что делает dup() в C?
Я знаю, что dup, dup2, dup3 " создают копию файлового дескриптора oldfd " (из справочных страниц). Однако я не могу это переварить. Насколько я знаю, файловые дескрипторы — это просто числа для отслеживания расположения файлов и их направления...
34896 просмотров
schedule 06.06.2022

С++ dup2 и execl
Я работаю над заданием, и мне нужно создать каналы, чтобы другие программы выполняли другие функции. Я могу передать через командную строку без проблем, это просто. Однако использование dup2 и execl было для меня сложным. В какой-то момент мне...
969 просмотров
schedule 08.03.2023

Как в C перенаправить STDOUT_FILENO в /dev/null с помощью dup2, а затем перенаправить обратно к исходному значению позже?
У меня есть задание, над которым я работаю, и мне трудно его закончить. Идея состоит в том, чтобы написать программу if.c, которая выполняет одну программу и в случае успеха выполняет вторую программу. Я должен подавить стандартный вывод первой...
20553 просмотров
schedule 04.10.2022

Мультитрубка в C (дети не перестают читать)
Я пытаюсь реализовать несколько каналов в C для запуска нескольких команд, таких как оболочка. Я сделал связанный список (называемый в моем коде t_launch), который выглядит так, если вы наберете «ls | grep src | wc»: wc -- PIPE -- grep src -- PIPE...
990 просмотров
schedule 01.06.2022

Сложность перенаправления вывода в коде dup2 и pipe в Unix.
Я новичок в юникс. В следующем коде я передаю три аргумента из командной строки «~$ foo last sort more», чтобы воспроизвести «~$ last | sort | more». Я пытаюсь создать программу, которая будет принимать три аргумента (по крайней мере, 3). Родитель...
818 просмотров
schedule 13.02.2023

Игрушечная оболочка неправильно соединена трубопроводом
Я не собираюсь лгать. Это вопрос домашнего задания. Однако, насколько я понимаю, очки ушли, детка, ушли. Прямо сейчас я просто ищу ответ, потому что я думаю, что могу сойти с ума. Цель этой программы — выполнить команду ps -A | grep...
548 просмотров
schedule 07.06.2022

Перенаправление Python os.dup2 включает буферизацию вывода на консолях Windows Python.
Я использую стратегию, основанную на os.dup2 (аналогично примерам на этом сайте), чтобы перенаправить вывод уровня C/fortran во временный файл для захвата. Единственная проблема, которую я заметил, заключается в том, что если вы используете этот...
1282 просмотров
schedule 09.11.2022

Путаница с dup2 (), exec () и трубами
Я изо всех сил пытался понять концепцию, включающую команды dup2() , exec() и каналы вместе. То, чего я пытаюсь достичь: По конвейеру вывод программы X поступает на вход программы Y. Что-нибудь базовое, например who | sort с...
364 просмотров
schedule 26.05.2022

функция dup2 не возвращает никакого значения
Я пытаюсь написать программу безымянного канала, используя fork, pipe, dup2 и execvp. Программа должна взять первую команду из командной строки и разветвить дочерний процесс. родитель должен выполнить команду и передать вывод дочернему элементу....
352 просмотров
schedule 28.01.2023

Восстановление stdout после использования dup
Используя fork , я создал дочерний элемент, и в нем я выполняю команду ls , используя execl . Чтобы отправить вывод родителю, я использовал pipe и dup . Затем родитель печатает вывод. Код дает ожидаемый результат, но когда я попытался...
1676 просмотров
schedule 30.06.2023

dup2: write() перенаправляется, но не fprintf() или puts()
Я пытаюсь прочитать STDOUT дочернего процесса. Вот функция fork (да, С++). bool ForkAvecBus::start() { child_pid = fork(); if(child_pid == -1) return true; if(child_pid == 0) { /* Child process closes up input side...
184 просмотров
schedule 17.01.2023

конвейерный вывод одного дочернего элемента на стандартный ввод другого дочернего элемента в c
Это то, что я пытаюсь сделать: родительский процесс создает два дочерних процесса, а затем передает стандартный вывод одного в стандартный ввод другого. Затем родитель ждет 5 секунд и убивает первого ребенка. Вот как я подошел к этому: сначала я...
950 просмотров
schedule 28.05.2023

Перенаправление ввода с помощью dup2()
Итак, я пытаюсь реализовать следующий оператор командной строки на С++, используя dup2() и execvp(): wc < inputFile.txt затем вернитесь в мою командную строку. Итак, в основном я разветвляю процесс и выполняю эту команду в дочернем процессе....
1528 просмотров
schedule 02.02.2023

Проблема с каналами между процессами отца и сына
Используя каналы, отец читает из стандартного ввода и отправляет его дочернему процессу с помощью каналов, чтобы дочерний процесс мог выполнить подсчет слов для ввода. Задачи с открытой и закрытой трубой p[0] и p[1]. Почему я не могу сделать...
158 просмотров
schedule 28.11.2023

Команды конвейера bash echo и bc в программу на языке C
Я пытаюсь создать небольшую программу на C, которая реализует конвейер из двух команд bash: echo $ arithmeticOperation | До нашей эры $ arithmeticOperation - это строка, принимаемая в качестве входных данных. Программа отлично работает,...
239 просмотров
schedule 25.05.2023

Как использовать dup2 для перенаправления stdin и stdout в файловые дескрипторы конвейера?
Я пытался разветвить процесс и перенаправить stdout родителя на конец записи канала и stdin дочернего элемента на конец чтения канала. Предполагается, что ребенок читает целые числа, пока родитель не напечатает ноль. родитель печатает от 1 до 3, а...
1790 просмотров
schedule 27.04.2023

труба второй раз застряла
Я использовал pipe и dup2 для перенаправления файловых дескрипторов, но после первой команды второй execvp застрял, я использовал цикл for, чтобы обвести несколько команд. Я почти уверен, что токенизация и буфер работают. Если я запускаю первую...
26 просмотров
schedule 03.11.2022

Связь с дочерним процессом, зависшим при чтении в C
Я пытаюсь связаться с внешней программой, которая, если она будет выполнена, запустит терминальный интерфейс. Обычно мне нужно предоставить некоторые входные данные (например, 1 + 1), а затем прочитать вывод программы (например, 2). Поскольку мне...
89 просмотров
schedule 28.01.2023