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

несколько труб в C
Я пытаюсь реализовать несколько каналов в C, решение должно быть для: cmd1 | cmd2 | cmd3 и для: |--- cmd2 cmd1 |--- cmd3 |--- cmd4 #include <stdio.h> #include <stdlib.h> #include <unistd.h>...
1256 просмотров
schedule 16.07.2023

Перенаправить стандартный вывод из python для вызовов C
Это дополнительный вопрос из здесь , конкретно касающийся его ответить . Из модуля Python я вызываю исполняемый файл Hello World , который просто выводит Hello World на стандартный вывод. Я заинтересован в перенаправлении этого вывода на...
4668 просмотров
schedule 18.04.2023

Использование Dup2 для перенаправления ввода и вывода
Я пишу оболочку Unix на C и пытаюсь реализовать перенаправление ввода и вывода. Я использовал для этого Dup2 и могу сделать так, чтобы мой вывод перенаправлялся в файл, и мой ввод также перенаправлялся правильно. Однако после того, как я закончу с...
11061 просмотров
schedule 09.04.2022

dup2, execv, каналы, разветвление и код, работающий в неправильном порядке
Так что это должно делать разветвление, дочерний процесс получает текст файла, а затем родительский процесс изменяет этот текст и записывает его в новый файл. У меня разные странности исходят от этого. Весь код примерно такой. #include...
559 просмотров
schedule 11.08.2022

перенаправить вывод безымянного канала в файл журнала в c
я хочу перенаправить вывод безымянного канала в открытый файл журнала в c, но я не могу это сделать, мой код выглядит так: close(fildes[1]); FILE * file = fopen(logfile, "w"); int fd = fileno(file); if (fd == -1) { bail_out(EXIT_FAILURE,...
631 просмотров
schedule 01.07.2023

Как запустить мой стандартный ввод через команду cut с помощью функции execl()?
Моя цель - сделать IPC между дочерним и родительским через FIFO. ребенок должен бегать execl ("/bin/cat", "cat", "/etc/passwd", (char *)0); перенаправить его вывод на ввод родителей, и родитель должен выполнить эту команду: cut -l : -f...
731 просмотров
schedule 27.08.2022

Можно ли дважды перенаправить стандартный вывод с помощью dup2?
У меня возникла проблема, когда я использовал dup2 direct stdout сначала к временному файлу, а потом к общему файлу. Это часть моего кода: FILE* fdArch=fopen("file.txt","w"); char nameBuff[100]; memset(nameBuff,0,sizeof(nameBuff));...
347 просмотров
schedule 29.12.2023

Почему dup2 не происходит в последовательном порядке?
Вот фрагмент кода. int saved_stdout = dup(1); int fd = open("file.txt", O_WRONLY | O_CREAT, 0640); close(1); dup(fd); close(fd); printf("This text should go into the file\n"); //restore stdout dup2(saved_stdout, 1); printf("stdout restore");...
334 просмотров
schedule 20.10.2022

linux dup2 не работает с трубой?
Я пробовал dup2 на linux. Моя тестовая программа: я открываю канал, пытаюсь выполнить дублирование стандартного ввода в fifo для записи, дублирование стандартного вывода в fifo чтение, я хочу, чтобы при запуске этой программы стандартный ввод...
167 просмотров
schedule 22.05.2023

использование dup2 и pipe для перенаправления stdin
У меня есть программа A, которая принимает два аргумента из стандартного ввода и завершается с уникальным кодом в зависимости от аргументов. Я пишу программу B, которая вызывает программу A, используя fork и exec, и позволяю программе B распечатать...
1528 просмотров
schedule 24.07.2022

Разветвление нескольких дочерних процессов и open()/dup2()
Итак, я пытаюсь прочитать строку с несколькими командами и создать дочерний процесс для каждой команды для ее обработки. У меня возникли проблемы при попытке раскомментировать оператор if(fd2) для перенаправления stdout . Вместо того, чтобы...
307 просмотров
schedule 04.11.2022

Реализация оболочки в C - конвейерный ввод имеет правильный вывод, но выходит из цикла
Я пытаюсь реализовать базовую оболочку на C, которая обрабатывает несколько каналов. Он ожидает ввода и выполняет команды в цикле for. Когда он получает EOF, он перестает ждать ввода и завершает работу. Прямо сейчас моя оболочка выводит...
448 просмотров
schedule 25.03.2023

Гарантия закрытия трубы после выхода ребенка
Безопасно ли в приведенном ниже коде полагаться на ошибку чтения() для обнаружения завершения дочернего процесса? #include <stdio.h> #include <stdlib.h> #include <string.h> #include <errno.h> #include <unistd.h>...
224 просмотров
schedule 29.03.2023

почему printf в c, кажется, дает результат после того, как произошло другое действие?
Я уверен в своей проблеме, но не в ее причине, поэтому мой заголовок не может быть хорошим вопросом для этой проблемы: / Я создаю функцию, которая работает как printf, назовем ее print2 , и для ее тестирования я написал этот небольшой код, который...
64 просмотров
schedule 25.11.2022

Попытка построить оболочку с пайплайнами и фоном
Привет, я пытаюсь воссоздать оболочку, и у меня две основные проблемы: 1. После выполнения одной единственной команды программа завершает работу 2. Конвейер не работает Вот часть кода, которая имеет дело с каналами, перенаправлениями......
67 просмотров
schedule 23.06.2023

Передать пароль дочернему процессу ssh
#define errExit(msg) do{perror(msg);exit(3);} while (0) struct cmd { char *pathname; int timeout; char *argv[]; }; void exec(struct cmd *cmd, pid_t *pid, int *fd) { int fildes[2]; pid_t procid; if (pipe2(fildes, O_NONBLOCK)) {...
20 просмотров
schedule 17.04.2022