Valeu @FelipePetropolis, vou dar uma olhada.
Quanto ao prototipo, escrevi isso ontem e ainda n tive tempo de compilar, mas deve funcionar.
Ainda ta na fase de ler o arquivo e separar as palavras como membros de um vetor bidimensional para que eu possa trabalhar com as palavras individualmente.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main () {
FILE *arq;
// 100 palavras de 255 caracteres
char buffer[100][255];
// buffer de leitura
char buf[10];
char nome[255];
// buffer de linha atual
char linha[255];
size_t sz;
// onde sera armazenado o conteudo do arquivo lido
char arquivo_original[9999];
printf("Digite o nome do arquivo: ");
scanf("%254s", &nome);
arq = fopen(nome, "r");
if(arq == NULL) {
perror("fopen");
exit(1);
}
while(!feof(arq))
{
sz = fread((void *) buf, 9, 1, arq);
buf[9] = '\0';
strcat((void *) &arquivo_original,(void *) &buf);
}
printf("Conteudo: \n");
printf("%s\n", arquivo_original);
register int x;
register int y = 0;
//percorre o conteudo do arquivo lido
for(x = 0; x<= strlen(arquivo_original); x++)
{
/* enquanto posição x diferente de \n, caractere x de linha
* igual a caractere x de arquivo_original */
if(arquivo_original[x] != "\n")
{
linha[x] = arquivo_original[x];
} else
{
// incrementa posição y
y++;
linha[strlen(linha) - 1] = "\0";
}
// copia a linha pra sua posição correspondente no vetor
strcpy(&buffer[x][y], &linha);
}
printf("\n");
fclose(arq);
return 0;
} // main
Depois que eu me certificar que esta funcionando, vou fazer uma função e criar 2 threads e ver se funciona.
Achei também esse arquivo, muito bom e pode lhe ser útil também: http://www2.dc.ufscar.br/~hermes/FITEM2010/2.FITEM-Pthreads.pdf