Programmi

Ci sono vari programmi scritti in C, con richiamo di funzioni e system call di uso forse non frequente. Ho avuto la possibilità di poter provarli in 3 distribuzioni Linux diverse: Debian, SuSE, CentOS. Qualcuno è stato provato anche in ambiente Windows, ove ho installato il compilatore Bloodshed Dev-C++, liberamente scaricabile dal sito del produttore http://www.bloodshed.net. Ciascun programma è preceduto da un breve cappello di spiegazioni. Però non ci sono commenti. In rete, a cercare oculatamente, le spiegazioni, esaurienti e non, si sprecano. Ciò che a mio avviso manca sono degli esempi cantierabili. Ho posto la massima cura nella programmazione, ma non posso escludere errori, per cui il materiale lo si usa a proprio rischio e pericolo. Questa è la panoramica attuale:

albero binario gestione di un albero binario non AVL
deepfile tutte le informazioni di un file
linkedlist uso di una lista semplice
* myls reinvenzione del comando ls
ordina uso di qsort e bsearch
* red remove empty directory
* regex uso delle regular expression
segnale gestione dei segnali
shortopt parametri opzionali corti
stack uso di uno stack (pila)
termio gestione caratteristiche terminale
varg numero variabile argomenti
match funzione ausiliaria
longopt parametri opzionali lunghi

Come ottenere i programmi? Ci sono vari metodi. Uno è il veloce ma potenzialmente insidioso «copia-e-incolla». L'altro consiste nel mandarmi una mail, indicando il programma desiderato. Risponderò inviando il source in allegato.

Per le compilazioni ho usato il seguente paradigma:
      gcc -ansi -pedantic -Wall -Wextra -O2 -s -o programma programma.c
ove:
-Wall -Wextra diagnostica estesa
-ansi -pedantic controlli estesi della sintassi
-O2 ottimizzazione
-s strip dell'eseguibile
-o xxxx nome dell'eseguibile

Per quelli preceduti dall'* (asterisco) è necessaria la presenza della funzione ausiliaria match. Il paradigma è perciò:
      gcc -Wall -Wextra -ansi -pedantic -O2 -s -o programma programma.c match.c