Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <pthread.h> //do obslugi watkow
- #include <stdio.h> //do obslugi plikow
- #include <unistd.h> //do usypiana watkow
- pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER;
- char common[100];
- int isFinished = 0;
- void* funkcjaWatku(void* arg) {
- //petla wypisujaca i przekazujaca do pliku zawartosc bufora
- while(1) {
- //pthread_mutex_lock(&lock);
- printf("%d: %s", (int)pthread_self(), common);
- fputs(common, arg);
- //pthread_mutex_unlock(&lock);
- usleep(300);
- //isFinished=isFinished+1;
- }
- }
- int main() {
- //blok programu pobierajacy nazwe pliku wejsciowego od uzytkownika
- printf("Podaj nazwę pliku: ");
- char inputName[100];
- scanf("%s", inputName);
- //blok programu otwierajacy plik wejsciowy, oraz pliki wyjsciowe
- FILE* input = fopen(inputName, "r");
- FILE* output1 = fopen("KAROL1", "w");
- FILE* output2 = fopen("KAROL2", "w");
- FILE* output3 = fopen("KAROL3", "w");
- //blok programu tworzacy watki typu detached
- pthread_t watek1;
- pthread_t watek2;
- pthread_t watek3;
- pthread_create(&watek1, NULL, funkcjaWatku, output1);
- pthread_create(&watek2, NULL, funkcjaWatku, output2);
- pthread_create(&watek3, NULL, funkcjaWatku, output3);
- pthread_detach(watek1);
- pthread_detach(watek2);
- pthread_detach(watek3);
- //petla zapisujaca plik wejsciowy do buforu
- //pthread_mutex_lock(&lock);
- while(fgets(common, 100, input)) {
- //isFinished = 0;
- //printf("befor loop: %d\n", isFinished);
- //while(isFinished!=3);
- usleep(300);
- //printf("after loop: %d\n", isFinished);
- }
- //pthread_mutex_unlock(&lock);
- //zakonczenie programu
- pthread_mutex_destroy(&lock);
- fclose(output1);
- fclose(output2);
- fclose(output3);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement