<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://didawiki.cli.di.unipi.it/lib/exe/css.php?s=feed" type="text/css"?>
<rss version="2.0">
    <channel xmlns:g="http://base.google.com/ns/1.0">
        <title>DidaWiki - informatica:sol:laboratorio16:esercitazionia</title>
        <description></description>
        <link>https://didawiki.cli.di.unipi.it/</link>
        <lastBuildDate>Thu, 14 May 2026 01:18:39 +0000</lastBuildDate>
        <generator>FeedCreator 1.8</generator>
        <image>
            <url>https://didawiki.cli.di.unipi.it/lib/exe/fetch.php/wiki/dokuwiki.svg</url>
            <title>DidaWiki</title>
            <link>https://didawiki.cli.di.unipi.it/</link>
        </image>
        <item>
            <title>Esercitazione 1</title>
            <link>https://didawiki.cli.di.unipi.it/doku.php/informatica/sol/laboratorio16/esercitazionia/esercitazione1</link>
            <description>Esercitazione 1

Illustrazione dei principali comandi emacs. Cenni a vi. Principali differenza tra ANSI C e C99. Illustrazione uso del debugger gdb su un semplice programma. Esercizio sul debugger gdb.  

Illustrazione uso gdb

Vediamo come si usa il debugger</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Wed, 24 Feb 2016 14:25:15 +0000</pubDate>
        </item>
        <item>
            <title>Esercitazione 2</title>
            <link>https://didawiki.cli.di.unipi.it/doku.php/informatica/sol/laboratorio16/esercitazionia/esercitazione2</link>
            <description>Esercitazione 2

Stringhe e libreria standard di IO, creazione di librerie statiche, uso di valgrind.


Esercizio 1: tokenizer

Scrivere un programma che data una stringa come argomento, stampa a video (stdout) le parole contenute nella stringa in input una per ogni linea. Usare la funzione di libreria &#039;strtok&#039; per estrarre i token dalla stringa. Per realizzare il programma implementare la funzione &#039;tokenizer&#039; con la seguente segnatura:</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Wed, 02 Mar 2016 20:45:59 +0000</pubDate>
        </item>
        <item>
            <title>Esercitazione 3</title>
            <link>https://didawiki.cli.di.unipi.it/doku.php/informatica/sol/laboratorio16/esercitazionia/esercitazione3</link>
            <description>Esercitazione 3

Stringhe e libreria standard di IO, creazione di librerie statiche, macros, extern e static. 


Esercizio 1: controllo errori

Scrivere una funzione macro &#039;CHECK_CALL_PTR&#039; che prende due argomenti, un puntatore ed una stringa, e stampa utilizzando</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Wed, 09 Mar 2016 13:39:02 +0000</pubDate>
        </item>
        <item>
            <title>Esercitazione 4</title>
            <link>https://didawiki.cli.di.unipi.it/doku.php/informatica/sol/laboratorio16/esercitazionia/esercitazione4</link>
            <description>Esercitazione 4

Macros, libreria standard di IO, Makefile primi script Bash. 


Esercizio 1: macro

Dato il seguente codice main C:


#define dimN 16
#define dimM  8
int main() {
    long *M = (long*)malloc(dimN*dimM*sizeof(long));
    assert(M);
    for(size_t i=0;i&lt;dimN;++i)
	for(size_t j=0;j&lt;dimM;++j) {			
	    ELEM(M,i,j) = i+j;
        }
    
    PRINTMAT(M);
    free(M);
    return 0;
}</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Wed, 16 Mar 2016 15:56:53 +0000</pubDate>
        </item>
        <item>
            <title>Esercitazione 4</title>
            <link>https://didawiki.cli.di.unipi.it/doku.php/informatica/sol/laboratorio16/esercitazionia/esercitazione5</link>
            <description>Esercitazione 4

Bash scripting. 


Esercizio 1

Utilizzando il comando find stampare sullo standard output la lista di tutti i file contenuti nella directory corrente che hanno estensione “.sh” e che sono stati modificati negli ultimi 30 minuti (Usare l&#039;opzione -mmin di find</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Wed, 23 Mar 2016 14:27:36 +0000</pubDate>
        </item>
        <item>
            <title>Esercitazione 6</title>
            <link>https://didawiki.cli.di.unipi.it/doku.php/informatica/sol/laboratorio16/esercitazionia/esercitazione6</link>
            <description>Esercitazione 6

System calls (SC) che operano su file. Per gli esercizi proposti si richiede di realizzare un Makefile.

Esercizio 1

Implementare utilizzando le chiamate di sistema open read write close l&#039;equivalente del comando Unix cat:



 mycat file1 [fileN].</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 04 Apr 2016 15:41:58 +0000</pubDate>
        </item>
        <item>
            <title>Esercitazione 7</title>
            <link>https://didawiki.cli.di.unipi.it/doku.php/informatica/sol/laboratorio16/esercitazionia/esercitazione7</link>
            <description>Esercitazione 7

System calls (SC) che operano su directory e SC per la creazione ed attesa di terminazione di processi (fork, wait, waitpid). Per gli esercizi proposti si richiede di realizzare un Makefile.

Esercizio 1

Scrivere un programma C che dati come argomenti una lista di file o directory stampa per ogni file: il nome del file, il numero dell&#039;inodo, il tipo di file (-,l,d,s,</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Wed, 13 Apr 2016 13:15:40 +0000</pubDate>
        </item>
        <item>
            <title>Esercitazione 8</title>
            <link>https://didawiki.cli.di.unipi.it/doku.php/informatica/sol/laboratorio16/esercitazionia/esercitazione8</link>
            <description>Esercitazione 8

System calls (SC) che operano su processi e pipe senza nome. 

Esercizio 1

Realizzare un programma C che prende come argomento un comando e la lista dei parametri da passare al comando. Il programma esegue il comando lanciando un processo figlio. Il i due processi comunicano tramite una pipe. L&#039;output del programma dovrà essere tipo:</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Tue, 19 Apr 2016 14:36:11 +0000</pubDate>
        </item>
        <item>
            <title>Esercitazione 9</title>
            <link>https://didawiki.cli.di.unipi.it/doku.php/informatica/sol/laboratorio16/esercitazionia/esercitazione9</link>
            <description>Esercitazione 9

POSIX threads, gestione della mutua esclusione. Per gli esercizi proposti si richiede di realizzare un Makefile.

Esercizio 1

Scrivere un programma C con due threads, un produttore (P) ed un consumatore (C). Il thread P genera, uno alla volta, una sequenza di numeri inserendoli in un buffer di 1 posizione condiviso con il thread C. Il thread consumatore estrae i numeri dal buffer e li stampa sullo standard output. Se il buffer e&#039; pieno P  attende che C consumi il dato, analogam…</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Wed, 27 Apr 2016 08:42:14 +0000</pubDate>
        </item>
        <item>
            <title>Esercitazione 10</title>
            <link>https://didawiki.cli.di.unipi.it/doku.php/informatica/sol/laboratorio16/esercitazionia/esercitazione10</link>
            <description>Esercitazione 10

Socket AF_UNIX, comunicazione client-server. Server multithreaded e gestione di più connessioni utilizzando la SC select. Per gli esercizi proposti si richiede di realizzare un Makefile.

Esercizio 1

Realizzare in C un programma client ed un programma server. I due processi intergiscono utilizzando socket AF_UNIX. Il client apre una connessione verso il server ed invia richieste (sotto forma di stringhe) corrispondenti ad operazioni aritmetiche inserite dall&#039;utente (es. 2+1, 3…</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Wed, 04 May 2016 05:40:17 +0000</pubDate>
        </item>
        <item>
            <title>Esercitazione 11</title>
            <link>https://didawiki.cli.di.unipi.it/doku.php/informatica/sol/laboratorio16/esercitazionia/esercitazione11</link>
            <description>Esercitazione 11

Gestione dei segnali senza threads. 

Esercizio 1

Riconsiderando l&#039;Esercizio 1 dell&#039;Assegnamento 10, introdurre nell&#039;implementazione del server, la gestione dei segnali SIGINT e SIGQUIT in modo da lasciare il sistema in stato consistente (eliminare dal file system il socket AF_UNIX creato per accettare le connessioni).</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Wed, 11 May 2016 06:41:55 +0000</pubDate>
        </item>
        <item>
            <title>Esercitazione 12</title>
            <link>https://didawiki.cli.di.unipi.it/doku.php/informatica/sol/laboratorio16/esercitazionia/esercitazione12</link>
            <description>Esercitazione 12

Esercizi con POSIX thread, segnali e socket AF_UNIX.

Esercizio 1

Estendere l&#039;Esercizio 3 dell&#039;Assegnamento 9 (M thread produttori ed N thread consumatori) in modo tale da  gestire il segnale SIGUSR1. In particolare, se il processo riceve il segnale SIGUSR1 dovra&#039; essere stampato sullo standard output: la lunghezza corrente della coda e gli elementi che sono nella coda.</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Fri, 20 May 2016 04:42:54 +0000</pubDate>
        </item>
        <item>
            <title>Esempio di programma client/server che utilizza pipe con nome (FIFO)</title>
            <link>https://didawiki.cli.di.unipi.it/doku.php/informatica/sol/laboratorio16/esercitazionia/fifoexample</link>
            <description>Esempio di programma client/server che utilizza pipe con nome (FIFO)

Client e server comunicano con una pipe FIFO. In particolare il server riceve i comandi da eseguire su una FIFO “pubblica” e restituisce le risposte su una FIFO privata del client il cui nome è stato inviato insieme alla richiesta. Il processo server forka un processo per eseguire il comando richiesto dal client redirigendo lo standard output per ottenere il risultato.</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Wed, 13 Apr 2016 13:21:17 +0000</pubDate>
        </item>
        <item>
            <title>Alcuni esempi di semplici programmi C con processi e pipe</title>
            <link>https://didawiki.cli.di.unipi.it/doku.php/informatica/sol/laboratorio16/esercitazionia/scexamples</link>
            <description>Alcuni esempi di semplici programmi C con processi e pipe

nproc.c (chiamate: fork, wait, getpid)

Si creano nproc processi figli che eseguono un certo numero di iterazioni, si attende quindi la loro terminazione stampando la condizione di terminazione l&#039;exit status e l&#039;eventuale segnale che ha terminato il processo.</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Wed, 13 Apr 2016 13:22:36 +0000</pubDate>
        </item>
        <item>
            <title>Sommario lezioni ed esercitazioni (Corso A)</title>
            <link>https://didawiki.cli.di.unipi.it/doku.php/informatica/sol/laboratorio16/esercitazionia/start</link>
            <description>Sommario lezioni ed esercitazioni (Corso A)

“valgrind: the &#039;impossible&#039; happened: Killed by fatal signal”

A questo  link il registro ufficiale delle lezioni.

----------
  Numero    Descrizione    Materiale    Commenti    Data    1  Introduzione al corso</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 20 Feb 2017 07:39:29 +0000</pubDate>
        </item>
    </channel>
</rss>
