Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <pthread.h>
- #include <string.h>
- #include <sys/types.h>
- #include <stdlib.h>
- struct watek_inside{
- int counter;
- char *tresc;
- }args;
- void* watek (void * test)
- {
- char znaki;
- int i=0;
- printf("Jestem wewnatrz watku\n");
- struct watek_inside * testowa;
- testowa = test;
- //printf("Licznik: %s \n",testowa->tresc);
- //wait(1000);
- for (i;i<25;i++)
- {
- if (testowa->tresc[i] == 'a') testowa->counter++;
- }
- printf("Licznik watku: %d\n",testowa->counter);
- pthread_exit(NULL);
- // exit(0);
- }
- char take_part(int part, char *tresc, char *czesc){
- int part_size = 25, start_part,end_part,csize = 0;
- //char czesc[26];
- // printf("TRESC: %s \n",tresc);
- start_part = part_size * part;
- end_part = start_part + part_size;
- //printf("Start part: %d koniec: %d\n",start_part,end_part);
- for (start_part;start_part < end_part;start_part=start_part+1)
- {
- czesc[csize] = tresc[start_part];
- csize = csize + 1;
- }
- czesc[25] = '\0';
- //printf("Czesc %s\n",czesc);
- return *czesc;
- }
- int main()
- {
- int i,licznik = 0;
- struct watek_inside *arg_vtest;
- char tekst[100];
- char part[26];
- FILE * plik = NULL;
- plik = fopen("test","r");
- fread(tekst,1,100,plik);
- tekst[100] = '\0';
- args.counter = licznik;
- //printf("PLIK: %s\n",tekst);
- //Tworzenie wÄ…tku
- pthread_t thread_id[4];
- void * test;
- for (i=0;i<4;i++)
- {
- take_part(i,tekst,part);
- //printf("czesc pliku: %s\n",part);
- args.tresc = part;
- test = &args;
- //printf("Czesc: %s\n",args.tresc);
- arg_vtest = test;
- //printf("Czesc after: %s\n",arg_vtest->tresc);
- pthread_create(&thread_id[i],NULL,&watek,test);
- //printf("ID watku %d",(int)thread_id[i]);
- // wait(10000);
- }
- for (i=0;i<4;i++) printf("Nr watku %i\n",(unsigned int) &thread_id[i]);
- for (i=0;i<4;i++) pthread_join(thread_id[i],NULL);
- //printf("Test");
- fclose(plik);
- }
Advertisement
Add Comment
Please, Sign In to add comment