Advertisement
Guest User

Untitled

a guest
Jan 17th, 2019
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.36 KB | None | 0 0
  1. #include <Windows.h>
  2. #include <stdio.h>
  3. #include <time.h>
  4.  
  5. int main() {
  6.     char cmdline1[] = "phil.exe 1";
  7.     char cmdline2[] = "phil.exe 2";
  8.     char cmdline3[] = "phil.exe 3";
  9.     char cmdline4[] = "phil.exe 4";
  10.     char cmdline5[] = "phil.exe 5";
  11.     PROCESS_INFORMATION prosInfo1, prosInfo2, prosInfo3, prosInfo4, prosInfo5;
  12.     STARTUPINFO startUpInfo;
  13.     ZeroMemory(&startUpInfo, sizeof(startUpInfo));
  14.     startUpInfo.cb = sizeof(startUpInfo);
  15.  
  16.     clock_t t;
  17.     t = clock();
  18.  
  19.     HANDLE Mutex0 = CreateMutex(
  20.         NULL,
  21.         FALSE,
  22.         TEXT("0"));
  23.     HANDLE Mutex1 = CreateMutex(
  24.         NULL,
  25.         FALSE,
  26.         TEXT("1"));
  27.     HANDLE Mutex2 = CreateMutex(
  28.         NULL,
  29.         FALSE,
  30.         TEXT("2"));
  31.     HANDLE Mutex3 = CreateMutex(
  32.         NULL,
  33.         FALSE,
  34.         TEXT("3"));
  35.     HANDLE Mutex4 = CreateMutex(
  36.         NULL,
  37.         FALSE,
  38.         TEXT("4"));
  39.  
  40.     if (!CreateProcess(
  41.         NULL,
  42.         cmdline1,
  43.         NULL,
  44.         NULL,
  45.         FALSE,
  46.         0,
  47.         NULL,
  48.         NULL,
  49.         &startUpInfo,
  50.         &prosInfo1)) {
  51.         printf("%d", 1);
  52.     }
  53.     if (!CreateProcess(
  54.         NULL,
  55.         cmdline2,
  56.         NULL,
  57.         NULL,
  58.         FALSE,
  59.         0,
  60.         NULL,
  61.         NULL,
  62.         &startUpInfo,
  63.         &prosInfo2)) {
  64.         printf("%d", 2);
  65.        
  66.     }
  67.     if (!CreateProcess(
  68.         NULL,
  69.         cmdline3,
  70.         NULL,
  71.         NULL,
  72.         FALSE,
  73.         0,
  74.         NULL,
  75.         NULL,
  76.         &startUpInfo,
  77.         &prosInfo3)) {
  78.         printf("%d", 3);
  79.     }
  80.     if (!CreateProcess(
  81.         NULL,
  82.         cmdline4,
  83.         NULL,
  84.         NULL,
  85.         FALSE,
  86.         0,
  87.         NULL,
  88.         NULL,
  89.         &startUpInfo,
  90.         &prosInfo4)) {
  91.         printf("%d", 4);
  92.        
  93.     }
  94.     if (!CreateProcess(
  95.         NULL,
  96.         cmdline5,
  97.         NULL,
  98.         NULL,
  99.         FALSE,
  100.         0,
  101.         NULL,
  102.         NULL,
  103.         &startUpInfo,
  104.         &prosInfo5)) {
  105.         printf("%d", 5);
  106.     }
  107.     WaitForSingleObject(prosInfo1.hProcess, INFINITE);
  108.     CloseHandle(prosInfo1.hProcess);
  109.     CloseHandle(prosInfo1.hThread);
  110.     WaitForSingleObject(prosInfo2.hProcess, INFINITE);
  111.     CloseHandle(prosInfo2.hProcess);
  112.     CloseHandle(prosInfo2.hThread);
  113.     WaitForSingleObject(prosInfo3.hProcess, INFINITE);
  114.     CloseHandle(prosInfo3.hProcess);
  115.     CloseHandle(prosInfo3.hThread);
  116.     WaitForSingleObject(prosInfo4.hProcess, INFINITE);
  117.     CloseHandle(prosInfo4.hProcess);
  118.     CloseHandle(prosInfo4.hThread);
  119.     WaitForSingleObject(prosInfo1.hProcess, INFINITE);
  120.     CloseHandle(prosInfo5.hProcess);
  121.     CloseHandle(prosInfo5.hThread);
  122.    
  123.     t = clock() - t;
  124.     printf("%.2f seconds\n", ((float)t) / CLOCKS_PER_SEC);
  125.  
  126.     CloseHandle(Mutex0);
  127.     CloseHandle(Mutex1);
  128.     CloseHandle(Mutex2);
  129.     CloseHandle(Mutex3);
  130.     CloseHandle(Mutex4);
  131.     system("pause");
  132.     return 0;
  133. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement