Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.02.2019, 20:25   #1
kompildan
Пользователь
 
Регистрация: 16.02.2019
Сообщений: 14
По умолчанию Обмен сообщениями между процессами

Здесь родительский процесс берёт время из функции printTime(вывода времени), а как сделать чтобы родительский процесс брал время из дочернего процесса. Т.е. чтобы сгенерировать данные в дочернем процессе и вывести их в родительском
Код:
#define _CRT_SECURE_NO_WARNINGS
 
#define TRUE 1
#define SLEEP_TIME 500
 
#include <stdio.h>
#include <conio.h>
#include <windows.h>
#include <time.h>
 
void printTime(char* processName);
 
void main(int argc, char** argv)
{
    _STARTUPINFOA sturtupInfo;
    PROCESS_INFORMATION processInfo;
 
    char childName[] = "Child";
 
    memset(&sturtupInfo, 0, sizeof(sturtupInfo));
    
    memset(&processInfo, 0, sizeof(processInfo));
    
 
    if (strcmp(childName, argv[0]) == 0)
    {
        while (!_kbhit())
        {
            printTime(childName);
        }
 
        printf("\n%s ID : %d\n", childName, GetCurrentProcessId());
 
        system("pause");
 
        return;
    }
 
    if (!CreateProcessA(argv[0],        // Имя исполняемого модуля
        childName,                  // Передача параметра(ов) командной строки новому процессу.
        NULL,                       // Установка атрибутов защиты для нового приложения.
        NULL,                       // Устанвока атрибутов защиты для первого потока созданного приложением.
        FALSE,                      // Флаг наследования от процесса производящего запуск.
        CREATE_NEW_CONSOLE,         // Новый процесс получает новую консоль вместо родительской. 
        NULL,                       // Указывает на блок памяти с переменными окуржения(значения в виде строк с нулевым окончанием)
        NULL,                       // Рабочий каталог нового процесса
        &sturtupInfo,               // Используется для настройки свойств процесса 
        &processInfo)               // Структура с информацией о процессе 
        )
    {
        printf("CreateProcess function failed with code : %d\n", GetLastError());
        system("pause");
        exit(EXIT_FAILURE);
    }
 
    while (TRUE)
    {
        if (WaitForSingleObject(processInfo.hProcess, 100) == WAIT_OBJECT_0)
        
        {
            printf("\nChild process was terminated\n");
            system("pause");
 
            CloseHandle(processInfo.hProcess);
            CloseHandle(processInfo.hThread);
 
            return;
        }
        printTime("Parent");
    }
}
 
void printTime(char* processName)
{
    time_t systemTime;// временной тип данных способный представлять время и поддерживает арифметические операции
    struct tm* timeInfo; //Структура, содержащая календарную дату и время, разбитая на составляющие.
 
    time(&systemTime);
    timeInfo = localtime(&systemTime);
 
    system("cls");
    printf("%s time : %s\r", processName, asctime(timeInfo));
 
    Sleep(SLEEP_TIME);
}
kompildan вне форума Ответить с цитированием
Старый 26.02.2019, 21:27   #2
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,493
По умолчанию

https://docs.microsoft.com/en-us/win...put-and-output
waleri вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обмен сообщениями между отдельными процессами aka.vatakats Помощь студентам 7 27.04.2012 06:00
Обмен сообщениями между отдельными процессами aka.vatakats Помощь студентам 1 26.04.2012 18:29
Обмен данными между двумя процессами ReGreed Общие вопросы C/C++ 6 27.05.2011 15:31
обмен сообщениями между сервером и клиентом Don Karleone Работа с сетью в Delphi 3 25.02.2011 15:24
Обмен сообщениями между IdTcpClient и idTcpServer Teen4jump Работа с сетью в Delphi 3 05.09.2007 09:25