fork download
  1. // Lab 8, Working with structs
  2. // Programmer : Maiar Khattab
  3. // Editor(s) used : Code Blocks 13.12
  4. // Compiler(s) used : Code Blocks 13.12
  5.  
  6. #include<iostream>
  7. using std::cout;
  8. using std::endl;
  9.  
  10. #include<cstdlib>
  11.  
  12. //struct def
  13. struct tod
  14. {
  15. int hour;// the hr , 0-23
  16. int minute;// the min, 0-59
  17. int second;//the sec, 0-59
  18. char descr [32];//the description of the time of day
  19.  
  20. };
  21. //void printTod(const tod&);
  22. int main ()
  23. {
  24. cout << "Lab 8, Working With structs\n";
  25. cout << "Programmer: Maiar Khattab\n";
  26. cout << "Editor(s) used: Code Blocks 13.12\n";
  27. cout << "Compiler(s) used: Code Blocks 13.12\n";
  28. cout << "File: " << __FILE__ << endl;
  29. cout << "Complied: " << __DATE__ << " at " << __TIME__ << endl << endl;
  30.  
  31. tod theTime[] = {{12,0,0, "noon"},
  32. {0,0,0," midnight"},
  33. {6,00,00," supper "},
  34. {11,30,0,"bedtime"}};
  35.  
  36. for(int i; i <5; i++)
  37. {
  38. char descr [32];
  39. cout << theTime[i].descr << " is " << theTime[i].hour << ':'
  40. << theTime[i].minute << ":" << theTime[i].second << endl;
  41. }
  42. }
  43.  
  44.  
Success #stdin #stdout 0.01s 5280KB
stdin
 #include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/wait.h>

int main() {
    pid_t pid1, pid2;

    // Создаем первый дочерний процесс
    pid1 = fork();
    if (pid1 < 0) {
        // Ошибка при создании процесса
        perror("fork failed");
        exit(1);
    }

    if (pid1 == 0) {
        // Дочерний процесс 1
        printf("Дочерний процесс 1: PID = %d, Родительский PID = %d. Я работаю!\n", getpid(), getppid());
        exit(0);  // Завершаем процесс
    } else {
        // Родительский процесс продолжает выполнение
        // Создаем второй дочерний процесс
        pid2 = fork();
        if (pid2 < 0) {
            // Ошибка при создании второго процесса
            perror("fork failed");
            exit(1);
        }

        if (pid2 == 0) {
            // Дочерний процесс 2
            printf("Дочерний процесс 2: PID = %d, Родительский PID = %d. Я работаю!\n", getpid(), getppid());
            exit(0);  // Завершаем процесс
        } else {
            // Родительский процесс продолжает выполнение и ожидает завершения дочерних процессов
            int status1, status2;
            waitpid(pid1, &status1, 0);  // Ожидаем завершения первого дочернего процесса
            waitpid(pid2, &status2, 0);  // Ожидаем завершения второго дочернего процесса

            // Выводим статус завершения дочерних процессов
            if (WIFEXITED(status1)) {
                printf("Дочерний процесс 1 завершился с кодом: %d\n", WEXITSTATUS(status1));
            }
            if (WIFEXITED(status2)) {
                printf("Дочерний процесс 2 завершился с кодом: %d\n", WEXITSTATUS(status2));
            }

            printf("Родительский процесс завершен.\n");
        }
    }

    return 0;
}
stdout
Lab 8, Working With structs
Programmer: Maiar Khattab
Editor(s) used: Code Blocks 13.12
Compiler(s) used: Code Blocks 13.12
File: prog.cpp
Complied: Jan 11 2025 at 18:27:01

noon is 12:0:0
 midnight is 0:0:0
 supper  is 6:0:0
bedtime is 11:30:0
�Q9� �www is -593323944:32764:-1100410880