Advertisement
Guest User

Untitled

a guest
Dec 15th, 2019
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.43 KB | None | 0 0
  1. #include <pthread.h> //do obslugi watkow
  2. #include <stdio.h> //do obslugi plikow
  3. #include <unistd.h> //do usypiana watkow
  4.  
  5. //pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER;
  6. char common[100];
  7.  
  8. void* funkcjaWatku(void* arg) {
  9. //petla wypisujaca i przekazujaca do pliku zawartosc bufora
  10. while(1) {
  11. printf("%d: ", (int)pthread_self());
  12. //pthread_mutex_lock(&lock);
  13. printf("%s", common);
  14. fputs(common, arg);
  15. //pthread_mutex_unlock(&lock);
  16. usleep(300);
  17. }
  18. }
  19.  
  20. int main() {
  21. //blok programu pobierajacy nazwe pliku wejsciowego od uzytkownika
  22. printf("Podaj nazwΔ™ pliku: ");
  23. char inputName[100];
  24. scanf("%s", inputName);
  25. //blok programu otwierajacy plik wejsciowy, oraz pliki wyjsciowe
  26. FILE* input = fopen(inputName, "r");
  27. FILE* output1 = fopen("KAROL1", "w");
  28. FILE* output2 = fopen("KAROL2", "w");
  29. FILE* output3 = fopen("KAROL3", "w");
  30. //blok programu tworzacy watki typu detached
  31. pthread_t watek1;
  32. pthread_t watek2;
  33. pthread_t watek3;
  34. pthread_create(&watek1, NULL, funkcjaWatku, output1);
  35. pthread_create(&watek2, NULL, funkcjaWatku, output2);
  36. pthread_create(&watek3, NULL, funkcjaWatku, output3);
  37. pthread_detach(watek1);
  38. pthread_detach(watek2);
  39. pthread_detach(watek3);
  40. //petla zapisujaca plik wejsciowy do buforu
  41. while(fgets(common, 100, input)) {
  42. usleep(300);
  43. }
  44. //zakonczenie programu
  45. //pthread_mutex_destroy(&lock);
  46. fclose(output1);
  47. fclose(output2);
  48. fclose(output3);
  49. return 0;
  50. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement