-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathREADME.txt
54 lines (35 loc) · 2.23 KB
/
README.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
Grupo 22 - Dezembro/2020
55373 - José Almeida
55371 - Augusto Gouveia
54975 - Miguel Lages
Funcionalidades:
[pgrepwc.py]:
• Utilização: pgrepwc [-c|-l] [-p n] [-a s] [-f file] [-h] palavra <ficheiros>
• Opção "-h" que permite esconder o output.
• Uso de mecanismos de memória partilhada para comunicar resultados de pesquisas/contagens ao
processo pai por parte dos processos-filho.
• Suporta paralelismo: multiprocessing.
• Realçamento dos números das linhas a verde e das correspondências a vermelho.
• Uso de mecanismos de exclusão mútua (mutex lock) para assegurar que não se dão problemas de
sincronização (ex. escrita simultânea na mesma variável por parte de processos/threads diferentes)
e que a exposição dos resultados por parte dos processos/threads se dá de maneira intercalada.
• Uso de expressões regulares para encontrar correspondências exatas da palavra especificada em
situações que esta se encontre isolada.
• Estrutura robusta que permite aceder aos ficheiros-alvo sem ter que os carregar diretamente para
a memória (especialmente útil para ficheiros de maiores dimensões).
• Programação defensiva que permite que o programa não falhe quando um dos ficheiros referidos não
é encontrado. Inclui também prevenção de repetição de procura em ficheiros, descartando ficheiros
repetidos que possam ter sido introduzidos pelo utilizador.
• Leitura de nomes dos ficheiros-alvo através de stdin ou como argumento.
• Processamento seguro do sinal SIGINT: ao ser recebido o sinal SIGINT, é necessária confirmação
para que o programa termine o processamento, de modo a evitar acidentes. Ao ser recebida
confirmação, a paragem de processamento é efectuada de maneira segura e não abrupta, assegurando-se
que todos os dados recolhidos até ao momento são corretamente apresentados e possivelmente
guardados (opção "-f").
• Código detalhadamente documentado.
[hpgrepwc.py]:
• Utilização: hpgrepwc <ficheiro>
• Realçamento de dados considerados mais importantes a verde, há excepção de quando o total de
bytes processado não corresponde a 100% (neste caso a percentagem do total de bytes processado
apresenta-se realçada a vermelho).
• Código detalhadamente documentado.