Advertisement
Guest User

Untitled

a guest
Jun 24th, 2017
48
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.14 KB | None | 0 0
  1. #include <pthread.h>
  2. #include <stdio.h>
  3. #include <unistd.h>
  4.  
  5. #include <stdio.h>
  6. #include <string.h>
  7. #include <netdb.h>
  8. //#include <linux/in.h>
  9. #include <sys/socket.h>
  10. #include <unistd.h>
  11.  
  12. int pipe_write;
  13.  
  14. #define buflen 1024
  15. void *threadAttack(void *nothing)
  16. {
  17.     printf("Thread %d started\n",*((int*)nothing));
  18.     //Main loop
  19.     while(1)
  20.     {
  21.         //write to pipe
  22.         write(pipe_write,(char*)nothing,4);
  23.         //usleep(1000);
  24.  
  25.     }
  26.     pthread_exit(NULL);
  27. }
  28.  
  29. #include <stdio.h>
  30. #include <stdlib.h>
  31. #include <time.h>
  32.  
  33. int main()
  34. {
  35.     int pipe_fd[2];
  36.     pipe(pipe_fd);
  37.  
  38.     pipe_write=pipe_fd[1];
  39.  
  40.     pthread_t threads[128];
  41.     int value[128];
  42.     int read_array[128];
  43.     for(int i=0;i<32;i++)
  44.     {
  45.         read_array[i]=0;
  46.         *(value+i)=i;
  47.         pthread_create(&threads[i], 0, threadAttack, (void*)(value+i));
  48.     }
  49.  
  50.     //Read stuff
  51.     int reads=0;
  52.     while(reads<1000000)
  53.     {
  54.         int value;
  55.         read(pipe_fd[0],(char*)&value,4);
  56.         if ((value<0)||(value>32))
  57.         {
  58.             printf("Error\n");
  59.             break;
  60.         }
  61.         read_array[value]+=1;
  62.         ++reads;
  63.     }
  64.  
  65.     //finish
  66.     for(int i=0;i<32;i++)
  67.     {
  68.         printf("%d: %d\n",i,read_array[i]);
  69.     }
  70.  
  71.     getchar();
  72.     pthread_exit(NULL);
  73.     return 0;
  74. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement