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

Перенаправление вывода при запуске процесса - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Передача данных http://www.cyberforum.ru/cpp-beginners/thread942310.html
Здравствуйте! Подскажите, пожалуйста, как организовать передачу данных, допустим через сокет, с заданной скоростью V_out, например, 15Мб в секунду? Отправляю я пакеты длины 188 байт. Но скорее всего...
C++ Структура в качестве ключа для map Доброго времени суток. Имеется простая структура struct coordinateSet { public: coordinateSet(char *X,int *Y) { http://www.cyberforum.ru/cpp-beginners/thread942294.html
C++ Передача адреса функции в функцию (Класы)
Пример: // Общая функция increment void Test::IncBaseFunction ( void (Test::*IncFunct)() ) { // Как правильно передать и вызвать IncFunct ? }
C++ Классы в c++
Извините, если не туда написал. Вот к примеру я создал класс classa. В функции main создал объекты vasya и petr. Но, в других функциях эти объекты работать не будут. Будет писать, мол таких объектов...
C++ Работа с fstream http://www.cyberforum.ru/cpp-beginners/thread942260.html
Здорова! Создал класс для записи и чтения файла через операцию , но почему то он работает не так как нужно. #include <iostream> using std::cout; using std::endl; #include <fstream> using...
C++ switch (Программа должна переводить введенные цифры в слова) Программа должна переводить введенные цифры в слова. проблема: в каждом switch выполняются только default . #include <iostream> #include <string> #include <stdlib.h> using namespace std; ... подробнее

Показать сообщение отдельно
Avazart
Эксперт С++
7247 / 5419 / 297
Регистрация: 10.12.2010
Сообщений: 24,050
Записей в блоге: 17
06.02.2015, 00:34
Цитата Сообщение от Убежденный Посмотреть сообщение
Ну если создавать хэндлы для дочернего процесса без указания
флага FILE_FLAG_OVERLAPPED, то он будет с ними работать синхронно.
По идее, так.
Ну да это пройденный этап - тогда не будет таймаутов, ради этого и затевалось все.

Кликните здесь для просмотра всего текста
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
41
42
43
44
45
46
47
48
//---------------------------------------------------------------------------
ulong Pipe::read(char* data,ulong size,IOResult& result)
{
    if(handle_==INVALID_HANDLE_VALUE)
        throw ProcessError("INVALID_HANDLE_VALUE");
 
    ulong length= 0;
    bool success= ReadFile(handle_,
                                                 data,
                                                 size,
                                                 &length,
                                                 &overlapped_);
 
    if(!success)
    {
        ulong code= GetLastError();
        if (code==ERROR_IO_PENDING)
        {
            ulong waitResult= WaitForSingleObject(handle_, timeOut_);
            switch (waitResult)
            {
                case WAIT_OBJECT_0:  result= IOResult::Ok;      break;
                case WAIT_TIMEOUT:   result= IOResult::TimeOut; return 0;
                case WAIT_FAILED:    throw ProcessError();
                default:               throw ProcessError("UNKNOWN ERROR!");
            }
        }
        else if(code==ERROR_BROKEN_PIPE)
        {
            result= IOResult::Broken;
            return 0;
        }
    }
 
    success=
        GetOverlappedResult(handle_,&overlapped_,&length,FALSE);
 
    if(!success)
    {
        ulong code= GetLastError();
        if(code==ERROR_BROKEN_PIPE)
            result= IOResult::Broken;
        else
            throw ProcessError();
    }
    overlapped_.Offset+= length;
    return length;
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru