Strumenti Utente

Strumenti Sito


informatica:sol:laboratorio:faq

Differenze

Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.

Link a questa pagina di confronto

Prossima revisione
Revisione precedente
informatica:sol:laboratorio:faq [09/01/2010 alle 14:59 (16 anni fa)] – creata Susanna Pelagattiinformatica:sol:laboratorio:faq [14/10/2010 alle 09:56 (15 anni fa)] (versione attuale) Susanna Pelagatti
Linea 3: Linea 3:
  
  
 +
 +===== E' possibile accedere al numero di linea in C ? =====
 +Si, e' possibile utilizzando la macro 
 +<code>
 +__LINE__
 +</code>
 +
 +
 +===== FRAM3: e' possibile modificare i file .h del primo frammento ? =====
 +Si, e' possibile aggiungere campi alle strutture e prototipi nei file .h del primo frammento estendendo la libreria a patto che continuino a funzionare i test del primo frammento.
 +
 +===== FRAM2: e' possibile creare file temporanei ? =====
 +Si, a patto che i file vengano creati in una directory adeguata (esempio ''/tmp''), senza sovrascrivere file esistenti e rimossi a fine script (suggerimento: provate ''man mktemp'')
 +
 +
 +===== FRAM3: errore nella specifica in ''comsock.h'' =====
 +Nella specifica della funzione openConnection nel file comsock.h e' richiesto che la funzione ritorni 0 se la connessione ha avuto successo. Questo e' ovviamente sbagliato perche' in caso di successo deve tornare il file descriptor della socket connessa. La specifica corretta e' la seguente:
 +<code c>
 +/** crea una connessione all socket del server. In caso di errore funzione tenta NTRIALCONN volte la connessione (a distanza di 1 secondo l'una dall'altra) prima di ritornare errore.
 +   \param  path  nome del socket su cui il server accetta le connessioni
 +   
 +   \return fd il file descriptor della connessione
 +             se la connessione ha successo
 +   \retval SNAMETOOLONG se il nome del socket eccede UNIX_PATH_MAX
 +   \retval -1 negli altri casi di errore (sets errno)
 + *
 +  in caso di errore ripristina la situazione inziale: rimuove eventuali socket create e chiude eventuali file descriptor rimasti aperti
 + */
 +int openConnection(char* path);
 +</code>
 +
 +===== FRAM1: Come deve essere inizializzata la hash table ? =====
 +In ''new_hashTable()'' non e' necessario allocare tutte le liste di trabocco. La soluzione piu' ragionevole e' inizializzare la tabella a NULL ed allocare la lista quando serve durante l'inserimento di un nuovo elemento. Questo velocizza la creazione della tabella, suddivide l'overhead della creazione delle liste e risparmia memoria se non tutte le liste sono necessarie.
 +
 +===== FRAM1: Devo invocare perror() dentro le funzioni di genList e genHash ? =====
 +No, seguendo la convenzione delle funzioni di libreria C gli errori devono essere riportati con un opportuno codice di ritorno ed eventualmente settando ''errno''. Sara' chi invoca la funzione che invochera` anche ''perror()'' se lo ritiene opportuno.
 +
 +===== FRAM1: Quali valori possono essere assegnati a ''errno'' ? =====
 +''errno'' puo' contenere solo 0 oppure valori definiti dallo standard, vedi
 +<code>
 +man errno
 +</code>
 +altrimenti l'output di ''perror()'' e' non significativo.
  
 ===== Problemi con bashdb ===== ===== Problemi con bashdb =====
informatica/sol/laboratorio/faq.1263049183.txt.gz · Ultima modifica: 09/01/2010 alle 14:59 (16 anni fa) da Susanna Pelagatti

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki