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