• Non ci sono risultati.

E' dato un file

N/A
N/A
Protected

Academic year: 2021

Condividi "E' dato un file"

Copied!
1
0
0

Testo completo

(1)

E' dato un file “vocabolario.txt” che contiene una successione di strutture del seguente tipo:

struct coppia{

char italiano[30];

char inglese[30];

};

Esiste una funzione ricerca il cui prototipo è

int ricerca(const char input[], char output []);

che cerca il vocabolo input nel file “vocabolario.txt”, se lo trova restituisce il valore 1 e carica nel parametro output la traduzione inglese in caso contrario restituisce 0.

Un processo padre crea la pipe traduzione e la pipe vocaboli e un processo figlio.

ATTENZIONE: le operazioni di lettura/scrittura sulle pipe devono essere fatte usando variabili definite come vettori di 30 caratteri, è necessario quindi che il terzo parametro della read/write sia sempre 30 perché altrimenti il processo che legge non saprebbe quanti caratteri leggere.

Il figlio dovrà ciclicamente:

• leggere da tastiera un vocabolo e scriverlo nella pipe vocaboli

• leggere dalla pipe traduzione il vocabolo tradotto e visualizzarlo

Il ciclo termina quando da tastiera si inserisce la stringa “*” che verrà comunque scritta nella pipe vocaboli.

Il padre dovrà ciclicamente:

− leggere un vocabolo dalla pipe vocaboli

− ricercarlo nel file “vocabolario.txt” chiamando la funzione ricerca

− se la ricerca ha successo scrivere la traduzione nella pipe traduzione altrimenti scrivere la stringa “Non trovato” nella pipe traduzione

Il ciclo termina quando dalla pipe vocaboli viene letta la stringa “*”.

Definire un handler per il segnale SIGUSR1 che permetta di aggiungere una struct coppia nel file “vocabolario.txt” ed installarlo nel padre.

Riferimenti

Documenti correlati

Sia dato un file città.dat contenente, in ogni riga, una stringa di lunghezza massima 36 caratteri che contiene il nome di una città e un valore intero che ne rappresenta il numero

Scrivere una funzione elimina(l) che riceve in ingresso la lista l e la modifica eliminando tutti gli elementi che hanno il campo informativo uguale a quello

cost = 20; // estero ancora più

cost = 10; // Hawaii più costoso else // NON FUNZIONA. cost = 20; // estero ancora

Il processo figlio ricevuta la stringa “fine” chiude le pipe e termina restituendo al padre il numero di

Il processo figlio ricevuta la stringa chiude le pipe e termina restituendo al padre il numero di vocali eliminate. 14

La prima parte (Le tappe della mia vita) presenta, in senso diacronico, le fasi più significative della vita di monsignor Ghi- delli: gli anni giovanili trascorsi nella sua

A partire dal contenuto del file esami-ematici crei un array associativo $elencoesami usando come chiave il nome dell’esame e come valore un vettore contenete il valore