<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://didawiki.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:laboratorio15:esercitazionia</title>
        <description></description>
        <link>https://didawiki.di.unipi.it/</link>
        <lastBuildDate>Wed, 29 Apr 2026 06:24:31 +0000</lastBuildDate>
        <generator>FeedCreator 1.8</generator>
        <image>
            <url>https://didawiki.di.unipi.it/lib/exe/fetch.php/wiki/dokuwiki.svg</url>
            <title>DidaWiki</title>
            <link>https://didawiki.di.unipi.it/</link>
        </image>
        <item>
            <title>Alcuni esempi di script bash</title>
            <link>https://didawiki.di.unipi.it/doku.php/informatica/sol/laboratorio15/esercitazionia/bashscriptexamples</link>
            <description>Alcuni esempi di script bash

toupper.sh

Stampa a video i nomi passati come argomento allo script contenenti lettere minuscole in nomi con tutte le lettere maiuscole.


#!/bin/bash

# es.  &gt;$ toupper pippo Pluto MINNI
#         pippo --&gt; PIPPO
#         Pluto --&gt; PLUTO

# per ogni argomento  ($@ si può omettere)
for f in $@; do        
    # considero solo il nome e non eventuali path che lo precedono
    bname=`basename $f`
    # utilizzo tr per trasformare tutti i caratteri minuscoli in maius…</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Wed, 16 Mar 2016 11:22:00 +0000</pubDate>
        </item>
        <item>
            <title>Esercitazione 1</title>
            <link>https://didawiki.di.unipi.it/doku.php/informatica/sol/laboratorio15/esercitazionia/esercitazione1</link>
            <description>Esercitazione 1

Esercizi proposti su: puntatori, stringhe, puntatori a funzione, argc-argv, allocazione/deallocazione dinamica, .... 
Cercare di completare tutti gli esercizi durante le ore di laboratorio e nel caso come homework.


In caso di difficoltà su aspetti del C, discuterne con il docente.</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 16 Mar 2015 16:16:18 +0000</pubDate>
        </item>
        <item>
            <title>Esercitazione 2</title>
            <link>https://didawiki.di.unipi.it/doku.php/informatica/sol/laboratorio15/esercitazionia/esercitazione2</link>
            <description>Esercitazione 2

Ancora esercizi su C e su libreria standard di IO. Tools: mtrace e valgrind.

Cercare di completare tutti gli esercizi durante le ore di laboratorio e nel caso come homework.


Esercizio 0: esperienza su preprocessing, compilazione e linking</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Tue, 17 Mar 2015 05:44:42 +0000</pubDate>
        </item>
        <item>
            <title>Esercitazione 3</title>
            <link>https://didawiki.di.unipi.it/doku.php/informatica/sol/laboratorio15/esercitazionia/esercitazione3</link>
            <description>Esercitazione 3

Ancora su C, macros, libreria standard di IO, creazione di librerie statiche, semplici makefile.

Cercare di completare tutti gli esercizi durante le ore di laboratorio e nel caso come homework.


Esercizio 1: macro

Dato il seguente codice main C:</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Tue, 17 Mar 2015 12:32:15 +0000</pubDate>
        </item>
        <item>
            <title>Esercitazione 4</title>
            <link>https://didawiki.di.unipi.it/doku.php/informatica/sol/laboratorio15/esercitazionia/esercitazione4</link>
            <description>Esercitazione 4

Comandi unix e primi script bash.

Cercare di completare tutti gli esercizi durante le ore di laboratorio e nel caso come homework.


Esercizio 1

Considerare l&#039;esercizio 8 dell&#039;Assegnamento1. Dopo aver creato il filediinput.txt con il comando cat</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 23 Mar 2015 21:05:58 +0000</pubDate>
        </item>
        <item>
            <title>Esercitazione 5</title>
            <link>https://didawiki.di.unipi.it/doku.php/informatica/sol/laboratorio15/esercitazionia/esercitazione5</link>
            <description>Esercitazione 5

Comandi unix e script bash.

Cercare di completare tutti gli esercizi durante le ore di laboratorio e nel caso come homework.


Esercizio 1

Scrivere uno script bash che legga dallo standard input e scrive il testo ricevuto sia sullo standard output
che sul file passato come argomento allo script.</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Sat, 25 Apr 2015 20:05:34 +0000</pubDate>
        </item>
        <item>
            <title>Esercitazione 6</title>
            <link>https://didawiki.di.unipi.it/doku.php/informatica/sol/laboratorio15/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>Tue, 28 Apr 2015 06:37:46 +0000</pubDate>
        </item>
        <item>
            <title>Esercitazione 7</title>
            <link>https://didawiki.di.unipi.it/doku.php/informatica/sol/laboratorio15/esercitazionia/esercitazione7</link>
            <description>Esercitazione 7

System calls (SC) che operano su processi e pipe senza nome. Per gli esercizi proposti si richiede di realizzare un Makefile.

Esercizio 1

Completare il codice seguente in modo che il programma calcoli i primi 13 numeri di Fibonacci utilizzando per ogni chiamata</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Tue, 28 Apr 2015 16:11:46 +0000</pubDate>
        </item>
        <item>
            <title>Esercitazione 8</title>
            <link>https://didawiki.di.unipi.it/doku.php/informatica/sol/laboratorio15/esercitazionia/esercitazione8</link>
            <description>Esercitazione 8

Posix threads, creazione e 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 il numeri dal buffer e lo stampa sullo standard output. Se il buffer e&#039; pieno P  attende che C consumi il d…</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Sun, 03 May 2015 06:58:11 +0000</pubDate>
        </item>
        <item>
            <title>Esercitazione 9</title>
            <link>https://didawiki.di.unipi.it/doku.php/informatica/sol/laboratorio15/esercitazionia/esercitazione9</link>
            <description>Esercitazione 9

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 (es. 2+1, 3/4 + 2/7, sqrt(5) + 3.…</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 May 2015 08:42:50 +0000</pubDate>
        </item>
        <item>
            <title>Esercitazione 10</title>
            <link>https://didawiki.di.unipi.it/doku.php/informatica/sol/laboratorio15/esercitazionia/esercitazione10</link>
            <description>Esercitazione 10

Gestione dei segnali con e senza threads. Per gli esercizi proposti si richiede di realizzare un Makefile.

Esercizio 1

Scrivere un programma C che propone a video una serie di tabelline (nella forma n*m=? -- con n ed m interi da 0 a 9). Il programma attende per</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Sun, 17 May 2015 16:59:14 +0000</pubDate>
        </item>
        <item>
            <title>Esempio di programma client/server che utilizza pipe con nome (FIFO)</title>
            <link>https://didawiki.di.unipi.it/doku.php/informatica/sol/laboratorio15/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>Thu, 03 Sep 2015 19:18:12 +0000</pubDate>
        </item>
        <item>
            <title>Un semplice Makefile</title>
            <link>https://didawiki.di.unipi.it/doku.php/informatica/sol/laboratorio15/esercitazionia/makefileexample</link>
            <description>Un semplice Makefile

Viene proposto un semplice Makefile da utilizzare per fare esperimenti e “giocare” con la sintassi accettata dal comando make. 

Versione base


#
# PROVIDED &quot;AS IS&quot;, WITHOUT WARRANTY OF ANY KIND.
# Massimo Torquati &lt;torquati@di.unipi.it&gt;
#

CC		=  gcc
CFLAGS	        += -std=c99 -Wall -Werror
INCLUDES	= -I.
OPTFLAGS	= -g  #-O3 

.PHONY: all clean cleanall

TARGETS		= macro1 macro2

all	: $(TARGETS)

macro1	: macro1.c
macro2	: macro2.c


clean		: 
	-rm -f $(TARGETS)</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Tue, 24 Mar 2015 13:12:56 +0000</pubDate>
        </item>
        <item>
            <title>Alcuni esempi di semplici programmi C con processi e pipe</title>
            <link>https://didawiki.di.unipi.it/doku.php/informatica/sol/laboratorio15/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>Sun, 26 Apr 2015 13:34:51 +0000</pubDate>
        </item>
        <item>
            <title>Sommario lezioni ed esercitazioni (Corso A)</title>
            <link>https://didawiki.di.unipi.it/doku.php/informatica/sol/laboratorio15/esercitazionia/start</link>
            <description>Sommario lezioni ed esercitazioni (Corso A)

A questo  link il registro ufficiale delle lezioni.

----------
  Numero    Descrizione    Materiale    Commenti    Data    1 Lezione. Introduzione del corso. Richiami di C: puntatori, stringhe, puntatori a funzione, gestione della memoria (</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Tue, 23 Feb 2016 17:14:24 +0000</pubDate>
        </item>
        <item>
            <title></title>
            <link>https://didawiki.di.unipi.it/doku.php/informatica/sol/laboratorio15/esercitazionia/usogdb</link>
            <description>Codice non funzionante utilizzato per illustrare l&#039;uso del debugger gdb:


#include&lt;stdio.h&gt;
#include&lt;string.h&gt;

void leggi(char *[]);
void stampa(char *[], size_t);

int main() {
  char *a[3]={&quot;alberello&quot;,&quot;rosea&quot;,&quot;roma&quot;};
  leggi(a);
  return 0;
}

void stampa(char *arch[],size_t sizeA) {
  printf(&quot;i loro indirizzi sono:\n&quot;);

  for(size_t i=0;i&lt;sizeA;i++)
    printf(&quot;%p\n&quot;,(void*)&amp;arch[i]);
}
    
void leggi(char *archivio[]){
  size_t size=strlen(*archivio);
    
  for(size_t i=0;i&lt;size;i++)
…</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Tue, 24 Feb 2015 08:06:27 +0000</pubDate>
        </item>
    </channel>
</rss>
