Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

lab 8 (Linux)

.C
Скачиваний:
54
Добавлен:
15.06.2014
Размер:
2.18 Кб
Скачать
#include <stdio.h>
#include <pthread.h>
#include <signal.h>

pthread_t tid1, tid2, tid3;
char array_of_symbols [] = "abcdefghijklmopqrstvuwy";

void proc_thread1(void *arg)
{
 int k, j;

 for (k=0; k<23; k++)
  {
   printf("\033[%d;24H",k+1); 
   printf("%d: ");
   for (j=0; j<(int)arg; j++)
    printf("%c",array_of_symbols[k]);
   printf("\n");
   sleep(1);
  }
 pthread_exit(NULL);

}

void proc_thread2(void *arg)
{
 int k, j, i;

 for (k=0; k<23; k++)
  {
   if (k == 10)
    {
     pthread_cancel(tid3);

     printf("\033[24;0H");

     for (i=1; i<=80; i++)
       {
         printf(" ");
       }

     printf("\033[24;0HфТЕФЙК ДПР. РПФПЛ ХОЙЮФПЦЕО."); 
    };

   printf("\033[%d;48H",k+1); 
   printf("%d: ");
   for (j=0; j<(int)arg; j++)
    printf("%c",array_of_symbols[k]);
   printf("\n");

   sleep(3);
  }
 pthread_exit(NULL);
}

void proc_thread3(void *arg)
{
 int k, j;

 for (k=0; k<23; k++)
  {
   printf("\033[%d;72H",k+1); 
   printf("%d: ");
   for (j=0; j<(int)arg; j++)
    printf("%c",array_of_symbols[k]);
   printf("\n");

   sleep(2);
  }
 pthread_exit(NULL);
}


int main()
{
 int i, k;

 for (i=0; i<=30; i++)
 {
  printf("\n");
 }

 if (pthread_create(&tid1,NULL,(void*)proc_thread1,(void*)3) == -1)
  {
   printf("пЫЙВЛБ УПЪДБОЙС 1-ПЗП РПФПЛБ\n");
   exit(1);
  }

 if (pthread_create(&tid2,NULL,(void*)proc_thread2,(void*)2) == -1)
  {
   printf("пЫЙВЛБ УПЪДБОЙС 2-ПЗП РПФПЛБ\n");
   exit(2);
  }

 if (pthread_create(&tid3,NULL,(void*)proc_thread3,(void*)4) == -1)
  {
   printf("пЫЙВЛБ УПЪДБОЙС 3-ПЗП РПФПЛБ\n");
   exit(3);
  }

 for (k=0; k<23; k++)
  {
   if (k == 5)
    {
     pthread_kill(tid1, SIGSTOP);

     printf("\033[24;0H");

     for (i=1; i<=80; i++)
       {
         printf(" ");
       }

     printf("\033[24;0HрЕТЧЩК ДПР. РПФПЛ РТЙПУФБОПЧМЕО."); 
    };

   if (k == 12)
    {
     pthread_kill(tid1, SIGCONT);

     printf("\033[24;0H");

      for (i=1; i<=80; i++)
       {
         printf(" ");
       }

     printf("\033[24;0HрЕТЧЩК ДПР. РПФПЛ ЧПЪПВОПЧМЈО."); 
    };

   printf("\033[%d;0H",k+1); 
   printf("%d: ");
   printf("%c",array_of_symbols[k]);
   printf("\n");

   sleep(2);
  }

 getchar();
 return 0;
}
Соседние файлы в предмете Операционные системы