Вопросы по теме '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