Advertisement
Guest User

Untitled

a guest
Mar 29th, 2017
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.51 KB | None | 0 0
  1. #include <windows.h>
  2. #include <iostream>
  3. #include <cstdlib>
  4. #include <ctime>
  5. #include <string>
  6. using namespace std;
  7.  
  8. const int N = 30;
  9. char str[N] = "                          abc"; char s[N + 1];
  10. int M = N;
  11.  
  12. void left()
  13. {
  14.     for (int i = 0; i < M; i++)
  15.         cout << str[i];
  16.     cout << endl;
  17.     for (int i = 0, j = 0; i < M && j<M - 1; j++, i++)
  18.         s[j] = str[i + 1];
  19.     for (int i = 0; i < M; i++)
  20.         str[i] = s[i];
  21.     M = M - 1;
  22. }
  23. void main(int argc, char* argv[])
  24. {
  25.     SetConsoleOutputCP(1251);
  26.     srand(time(NULL));
  27.     HANDLE hS = CreateSemaphore(NULL, 1, 4, NULL);
  28.     //Больщая часть параметров не важны для pipe
  29.     HANDLE pipe = CreateFile(
  30.         L"\\\\.\\pipe\\laba",
  31.         GENERIC_READ,   //нужно только чтение
  32.         FILE_SHARE_READ | FILE_SHARE_WRITE,
  33.         NULL,
  34.         OPEN_EXISTING,
  35.         FILE_ATTRIBUTE_NORMAL,
  36.         NULL
  37.     );
  38.     int action;
  39.     DWORD numBytesRead;
  40.     for (;;)
  41.     {
  42.         if (WaitForSingleObject(hS, 0) == WAIT_OBJECT_0)
  43.         {
  44.             numBytesRead = 0;
  45.             BOOL result = ReadFile(
  46.                 pipe,
  47.                 &action,                    //данные из pipe будут записаны сюда
  48.                 sizeof(int),                    //кол-во выделенных буффером байт
  49.                 &numBytesRead,                  //действительное кол-во байт для хранения
  50.                 NULL                            //не использовать overlapped I/O
  51.             );
  52.             left();
  53.             Sleep(rand() % 500 + 200);
  54.  
  55.             // выходим из обработки
  56.             ReleaseSemaphore(hS, 1, NULL);
  57.         }
  58.     }
  59.     CloseHandle(pipe);
  60.     CloseHandle(hS);
  61. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement