#include  <stdio.h>
#include <stdlib.h>
#include  <pthread.h>
#include  <ctype.h>

void *count_words(void *);
struct dane_pliku
{
	char * name;
	int words;
};

int main(int ac, char *av[])
{
  pthread_t t1, t2;    /* dwa watki */
  struct dane_pliku plik1;
  struct dane_pliku plik2;

  if ( ac != 3 ){
     printf("usage: %s file1 file2\n", av[0]);
     exit(1);
  }
  plik1.name = av[1];
  plik2.name = av[2];
  plik1.words = 0;
  plik2.words = 0;
  pthread_create(&t1, NULL, count_words, (void *)&plik1);
  pthread_create(&t2, NULL, count_words, (void *)&plik2);
  pthread_join(t1, NULL);
  pthread_join(t2, NULL);
  printf("%5d: total words\n", plik1.words + plik2.words);
  return 0;
}
void *count_words(void *f)
{
  struct dane_pliku * tenPlik = (struct dane_pliku *)f;
  char *filename = tenPlik->name;
  FILE *fp;
  int  c, prevc = '\0';
  
  if ( (fp = fopen(filename, "r")) != NULL ){
    while( ( c = getc(fp)) != EOF ){
      if ( !isalnum(c) && isalnum(prevc) )
        (tenPlik->words)++;
      prevc = c;
    }
  fclose(fp);
  }  
  else 
    perror(filename);
  return NULL;
}
