Форум программистов, компьютерный форум, киберфорум
Наши страницы

Запуск процесса - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Сформировать одномерный массив, удалить первый элемент с заданным значением, сдвинуть массив циклически http://www.cyberforum.ru/cpp-beginners/thread1063659.html
1)сформировать одномерный массив целых чисел 2)удалить первый элемент с заданным значением 3)сдвинуть массив циклически на К элементов вправо
C++ Ошибка LNK2019 Пишу небольшую базу данных (в учебных целях поэтому нигде не сохраняю) и при добавлении всех функций и структур в библиотеку, при их использовании в программа не компилируется! namespace baseFunc... http://www.cyberforum.ru/cpp-beginners/thread1063652.html
C++ Написать функцию замены всех русских символов в строке пробелами
Написать функцию замены всех русских символов в строке пробелами. Ввести и обработать две смешанные строки. Буду признателен за помощь.
Проверить работу программы C++
Здравствуйте. Необходимо было написать программу выводящую подмножества из заданных множеств, затем построить отношение и вывести матрицу отношения и далее (подробнее в прикрепленном файле с...
C++ Обмен данными через файлы по локальной сети http://www.cyberforum.ru/cpp-beginners/thread1063587.html
Пусть два .exe-шника при себе имеют файлы Input.txt и Output.txt, у каждого отдельная папка, к примеру Папка 1 и Папка 2. Существует обмен информацией между ними посредством этих файлов. При попытке...
C++ Ошибка в программе сравнения слов Программка переписана из учебника и по ней есть несколько заданий, однако она не работает. #include"std_lib_facilities.h" можно заменить на #include<iostream> #include<string> #include<vector>... подробнее

Показать сообщение отдельно
0x10
2479 / 1654 / 248
Регистрация: 24.11.2012
Сообщений: 4,097
06.01.2014, 13:09
танкист34, тут можно вспомнить, что файловые дескрипторы наследуются дочерними процессами, и перед вызовом exec перенаправить stdout в pipe. С stderr можно поступить аналогично.
Сильно упрощенный пример:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include <stdio.h>
#include <strings.h>
 
#include <unistd.h>
#include <sys/types.h>
#include <sys/wait.h>
 
int main()
{
    int pipefd[2];
    pipe(pipefd);
 
    pid_t pid;
 
    pid = fork();
 
    if (pid)
    {
        /* parent */
        int status;
        wait(&status);
 
        const int bufsize = 512;
        char buf[bufsize];
        bzero(buf, bufsize);
 
        read(pipefd[0], buf, bufsize);
 
        printf("Parent:\n");
        printf("%s\n", buf);
    }
    else
    {
        /* child */
        dup2(pipefd[1], STDOUT_FILENO);
        execlp("ls", "ls", "-l", NULL);
    }
 
    return 0;
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru