Home    Novitą    Ricerca   In offerta   Consigliati   Prossimi arrivi   Bestsellers   Software    CBT  
P.Iva 01029770490   [Ordini telefonici 0586 210919]  Ordini rapidi 
Ricerca Veloce   per Titolo o ISBN  [Mailing delle novitą]   [Servizio di CallBack]  
  Argomenti 

  Applicazioni
  CAD
  Certificazione e formazione
  Commercio elettronico
  Cultura Informatica
  Database
  Dizionari
  Elettronica
  Enterprise
  Grafica
  Hardware
  Internet
  Legislazione informatica
  Multimedia
  Progettazione WEB
  Programmazione
  Reti e telecomunicazioni
  Sicurezza
  Sistemi operativi
  Tecnologia e societa'
  Universita' e ricerca
ProgrammazioneUNIX



Imparare la programmazione Linux in 24 ore
EditoreTecniche Nuove
AutoreGay
Titolo originaleTeach yourself Linux programming in 24 hours
Editore originaleSams
CollanaImparare in 24 ore
Pagine499
Volumi1
Supporto digitale1 CD-ROM
LivelloAvanzato
Linguaitaliano
Data pubblicazione11 - 1999
ISBN8848109764


 Prezzo di copertina 
 Euro 25,31  

 Presentazione       Indice      

Indice

Introduzione

Ora 1 Come iniziare
Introduzione a Linux
Introduzione a GNU gcc
Selezione dello standard GNU
Specificare il nome del file di output
Lanciare il programma compilato
Compilare per effettuare il debug
I livelli di warning dal compilatore
Lavorare con i messaggi di warning del compilatore
Warning relativi agli assegnamenti
Warning riguardo a parametri non utilizzati
Risolvere i warning di variabili non utilizzate
Risolvere i warning di variabili stringa non referenziate
Collaudare il compilatore
Problemi nella compilazione
Riepilogo

Ora 2 Controllo di versione dei sorgenti
I benefici dell'utilizzo del controllo di versione dei sorgenti
Quali strumenti per il controllo di versione?
Configurazione di RCS per un progetto
Creare un nuovo file sorgente
Visualizzare un file archiviato in RCS
Estrarre una copia del file da RCS
Utilizzo di una sottodirectory RCS
Estrazione dei sorgenti per la modifica
Modificare il sorgente
Visualizzare i cambiamenti
Archiviare i cambiamenti
Visualizzare la storia delle modifiche
Sostituzioni automatiche
Visualizzare le informazioni speciali in RCS
Utilizzare template per i sorgenti
Un template di modulo sorgente
Un template di file include
Annullare un'estrazione
Riepilogo

Ora 3 Scrivere un programma di utilita' Linux
Avviare il progetto dos_cvrt
Pianificazione del progetto
Check-out del modulo dos_cvrt.c per la modifica
Scelta dei file include
Scrivere la struttura della utility dos_cvrt
Effettuare il test della utility contenente la codifica sostitutiva
Sostituire i comandi puts()
Revisionare le specifiche del progetto
Editazione della riga di comando
Impostare la modalita' di editazione della riga di comando
Effettuare le ricerche dalla riga di comando
Riepilogo

Ora 4 Programmazione modulare in C
Programmare in moduli
Aggiungere nuove funzionalita'
Trasformare dos_cvrt in un programma modulare
Check-out di dos_cvrt.c per la modifica
Suddividere dos_cvrt.c in funzioni
Miglioramenti nel programma dos_cvrt.c in moduli separati
Descrizione di funzioni static
Riepilogo

Ora 5 Introduzione ai file make
Perche' utilizzare i file make?
Il Makefile
Testare la funzionalita' intrinseca di make
Il nome del file make
Target del Makefile
Il target predefinito
Nomenclatura standard dei target
Dipendenze
Definizione di macro in make
Ridefinire i valori delle macro
Utilizzare le variabili di ambiente
Utilizzo dell'opzione -e di make
Esaminare i suffissi dei file
Comprensione delle regole di inferenza
Testare le regole di inferenza predefinite
Definizione di una regola di inferenza
Istruzione per svolgere un'azione
Macro predefinite
La macro CFLAGS
Utilizzo di un make file per il progetto dos_cvrt
Costruire il Makefile
Effettuare il test del Makefile costruito
Effettuare un compilazione parziale
Riepilogo

Ora 6 Elaborazione della riga di comando Linux
Introduzione all'elaborazione della riga di comando
Riassunto delle convenzioni utilizzate nelle opzioni della riga di comando Linux
Utilizzo di opzioni multiple
Raggruppamento di opzioni multiple
Utilizzare opzioni che accettano parametri aggiuntivi
Distinguere tra opzioni e parametri aggiuntivi
Esaminare i parametri aggiuntivi che sembrano opzioni
Introduzione a getopt()
Utilizzare le variabili esterne associate a getopt()
Chiamare la funzione getopt()
Rivediamo il prototipo della funzione getopt()
Definizione del puntatore optstring
Definizione di un ciclo di elaborazione dei parametri e delle opzioni
Modificare dos_cvrt per poter utilizzare getopt()
Migliorare la utility dos_cvrt
Introduzione all'utilizzo dei parametri estesi GNU
Utilizzo della funzione getopt_long()
Prototipo della funzione getopt_long()
Comprensione della struttura option
Definizione della struttura option
Utilizzo del puntatore nullo option.flag
Utilizzo del puntatore non nullo option.flag
Aggiungere il supporto dei parametri estesi GNU a dos_cvrt
Modifiche a dos_cvrt
Riepilogo

Ora 7 Gestione e visualizzazione degli errori
Impariamo a gestire gli errori
Meccanismo UNIX di rilevazione degli errori
Indicazione della correttezza o dell'errore di esecuzione di una funzione
Indicazione del tipo di errore
Il vecchio valore di errno
Diamo un nome agli errori
Rilevare errori specifici
Utilizzare correttamente la variabile errno
Il nuovo modo di codificare gli errori
Dichiarazione della nuova variabile errno
Utilizzo della nuova variabile errno
Gestire i messaggi di errore
Utilizzare la funzione perror()
Utilizzo dell'array sys_errlist[]
Utilizzo della funzione strerror()
Gestione comprensibile degli errori nel programma dos_cvrt
Modifica del modulo unix2dos.c
Modifica del modulo dos2unix.c
Creazione del modulo putch.c
Modifica del file include dos_cvrt.h
Modifica del make file
Modifica del modulo dos_cvrt.c
Verifica delle condizioni di errore
Riepilogo

Ora 8 Il programma main di Linux e il suo ambiente
L'interfaccia del programma main()
Creazione dell'array argv[]
Utilizzo di argv[] senza argc
La dichiarazione del terzo parametro in main()
Variabili di ambiente esportate
Utilizzo del puntatore esterno environ
Lo spazio di indirizzamento riservato a un programma Linux
Analisi dello spazio di indirizzamento di un processo Linux
Comprensione del sorgente
Variabili di ambiente
Leggere il valore di una variabile di ambiente
Modificare una variabile di ambiente
Rimuovere una definizione di variabile di ambiente
Influenza delle modifiche alle variabili di ambiente sullo spazio di indirizzamento
Valori restituiti da un processo
Restituzione di un valore
Uso della funzione exit()
Utilizzare return oppure exit()?
Il comando return e i messaggi di warning del compilatore
Riepilogo

Ora 9 Utili tecniche di debug
Introduzione alle tecniche di debug
Le limitazioni del debugger
Registrare l'andamento del programma
Definizione della macro TRACE
Modificare la macro TRACE
Definizione della macro TRACEF
Definizione di macro condizionali di debug
Utilizzo di metodi di debug in fase di runtime
Attivazione di TRACE da riga di comando
Livelli di debug
Livello di debug e variabili di ambiente
Progettare un sistema di debug
Scriviamo un sottosistema di tracciamento
Comprensione del sottosistema di debug
Collaudo del sottosistema di debug
Conclusioni sul sottosistema TRACE
Riepilogo

Ora 10 Librerie statiche e condivise
Introduzione alle librerie C
La libreria statica
Lo spazio di indirizzamento di un processo (parte seconda)
Costruire una libreria statica
Utilizzo del comando ar per creare una libreria
Visualizzazione del contenuto di un archivio
Link con librerie statiche
Librerie dinamiche
Limiti delle librerie statiche
Creazione di una libreria dinamica
Utilizzare una libreria dinamica
Visualizzare i riferimenti alle librerie dinamiche
Funzione del loader dinamico
Controllo delle risorse condivise
Utilizzare librerie statiche o condivise?
Aspetti positivi dell'utilizzo di librerie statiche
Aspetti positivi dell'utilizzo di librerie condivise
Scegliere l'utilizzo di librerie statiche o librerie condivise
Licenze di distribuzione
Installazione alla portata di tutti
Condividere per risparmiare
Collegamenti dinamici alle librerie
Riepilogo

Ora 11 Funzioni avanzate per la gestione delle stringhe
Introduzione alle funzioni di gestione delle stringhe
Prototipi delle funzioni di gestione delle stringhe
Le funzioni strncasecmp() e strncasecmp()
Elaborazione di un comando inserito dall'utente
Confrontare i primi size_t caratteri
Interpretazione del valore restituito
La funzione strdup()
Rilasciare la memoria allocata
Gestione degli errori generati dalla funzione strdsup()
Le funzioni strchr() e strrchr()
Valore restituito dalle funzioni strchr() e strrchr()
La funzione strpbrk()
Le funzioni strspn() e strcspn()
Valore restituito dalle funzioni strspn() e strcspn()
La funzione strstr()
Le funzioni strtok() e strtok_r()
Il meccanismo di funzionamento di strtok()
Interpretazione della riga di comando
La funzione strtok_r()
I limiti intrinseci della funzione strtok()
Salvare il contenuto del puntatore
Introduzione alla funzione strtok_r()
Divertiamoci con le stringhe
Ottimizzare le chiamate alle funzioni strcat() e strcpy()
Utilizzare in maniera efficiente il valore restituito da strncpy()
Scriviamo la funzione sprintfcat()
Riepilogo

Ora 12 Funzioni di conversione
Introduzione alle funzioni di conversione
La famiglia di funzioni atol() e atof()
Anatomia delle funzioni atoi() e atol()
Utilizzare la funzione atof()
La funzione sscanf()
Utilizzo della funzione sscanf() per la conversione numerica
Test della conversione numerica con sscanf()
Miglioramenti nella conversione con sscanf()
Valutazione dei limiti di sscanf()
Le funzioni strtol() e strtoul()
Esempio di utilizzo di strtol()
Test della funzione strtol()
Alla ricerca degli errori di conversione
Alla ricerca degli errori di conversione
Utilizzo del puntatore restituito da sstrtol()
Conversioni multiple
Conversione tra diverse basi
Alla ricerca degli errori di overflow e underflow
Errore di overflow nella funzione strtoul()
La funzione strtod()
Utilizzare la funzione strtod()
Alla ricerca di altri errori
Riepilogo

Ora 13 Funzionalita' di Linux per data e ora
Il supporto di data e ora
L'Epoch Time
I fusi orari
Date e ora correnti secondo Linux
Definizione dei tipi di dato per data e ora
Perche' il tempo si esaurisce
Il tipo di dato time_t
Utilizzo di time() per stabilire data e ora
Funzioni di conversione temporali
La funzione ctime()
Le funzioni localtime() e gmtime()
La struttura tm
La funzione asctime()
La funzione tzset()
La funzione mktime()
Personalizzare i formati di data e ora
La funzione streftime()
Riepilogo

Ora 14 Gestione di userid, password e gruppi
Introduzione alla gestione di Linux
Nome utente e numeri uid
Nomi di gruppo e numeri gid
Le funzioni di identificazione
Le funzioni getuid() e geteuid()
Le funzioni getgid() e getegid()
Esempi di numeri uid e gid
Il file/etc/passwd
Il campo Comment
L'opzione & nel campo Comment
Ricerche nel database delle password
Le routine per il database delle password
La struttura passwd
Gestione degli errori di getpwent()
La funzione fgetpwent()
La funzione putpwent()
La funzione getpwuid()
La funzione getpwnam
Il database dei gruppi
Il file /etc/group
Le funzioni getgrent(), setgrent() ed endgrent()
La struttura group
La funzione fgetgrent()
La funzione getgrgid ()
La funzione getgrnam()
Riepilogo

Ora 15 Il file system: informazioni e gestione
Operazioni elementari sui file
Eliminare i file
Collegare i file
Spostare i file
Operazioni sulle directory
Rilevare la directory di lavoro corrente
Cambiare la directory
Creare una nuova directory
Eliminare una directory
Impostare il valore di umask
Perche' si utilizza umask
L'ambito di validita' di umask
Utilizzo della funzione umask()
Le informazioni del file system
La funzione stat()
Riepilogo

Ora 16 File temporanei e chiusura dei processi
Generare nomi di file temporanei
La funzione tmpnam()
Utilizzo della funzione mkstemp()
Utilizzo della funzione tmpfile()
Utilizzo della funzione tempnam()
Interpretare gli errori delle funzioni per i file temporanei
Rendere temporanei i file
Utilizzo di unlink() per rendere temporanei i file
Rimozione in uscita
Riepilogo

Ora 17 Pipe e processi
Utilizzo di processi esterni
I pipe
Aprire un pipe
Lettura da pipe
Scrittura su pipe
Chiusura di un pipe
Gestione di un pipe interrotto
La funzione system()
Interpretazione dei valori restituiti da system()
Utilizzo della funzione system()
Esecuzione del programma di esempio
Pro e contro della funzione system()
Riepilogo

Ora 18 Processi e fork
Breve introduzione ai processi
I numeri identificativi dei processi
Processi genitori e figlio
Creazione di un processo
La funzione fork()
Utilizzo della funzione fork()
Esecuzione dell'esempio di fork()
La famiglia di funzioni wait()
L'importanza di wait()
Utilizzo della funzione wait()
Gli altri componenti della famiglia wait
La famiglia di funzioni exec()
La procedura exec()
Utilizzo congiunto di fork() e exec()
Utilizzo pratico della funzione exec()
Gli altri componenti della famiglia exec()
Riepilogo

Ora 19 I semafori
Breve introduzione ai semafori
L'analogia della doccia singola
L'analogia della doccia multipla
I semafori di Linux in pratica
Attesa a un semaforo
Notifica a un semaforo
Attesa nel caso di istanze multiple
Creare e accedere a insiemi di semafori
Identificare gli insiemi di semafori esistenti
Inizializzazione di un insieme di semafori
Attesa e notifica a insiemi di semafori
Attesa su un insieme di semafori
Notifica a un insieme di semafori
Rilasciare le risorse di sistema dei semafori
Rimozione di un insieme di semafori
Utilizzo del comando ipcrm per il rilascio dei semafori
Utilizzare i semafori in una simulazione
Riepilogo

Ora 20 Memoria condivisa
Perche' e' necessaria la memoria condivisa
Identificazione della memoria condivisa
Creazione, acquisizione ed eliminazione della memoria condivisa
Creazione di memoria condivisa nuova
Collegamento della memoria condivisa
Collegamento a un indirizzo specifico
Scollegamento della memoria condivisa
Eliminazione della memoria condivisa
Utilizzo della memoria condivisa
Accesso sicuro alla memoria condivisa
Riferimento alla memoria condivisa senza semafori
Applicazione della memoria condivisa in un gioco
Panoramica sul gioco della Battaglia Navale
Istruzioni per il gioco
Analisi del codice per il primo giocatore
Analisi del codice per il secondo giocatore
Analisi di altri moduli chiave
Riepilogo

Ora 21 Code di messaggi
La coda di messaggi
La coda di messaggi secondo Linux
Utilizzo dei tipi di messaggio
Processi riceventi in competizione
Utilizzo delle code di messaggi
Creazione e accesso a una coda di messaggi
Eliminazione di una coda di messaggi
La struttura dei messaggi
Indicazione della dimensione di un messaggio
Invio di un messaggio
Ricezione di un messaggio
Il server cercapersone
Implementazione del server cercapersone
Riepilogo

Ora 22 Segnali
Cosa sono i sono i segnali
Il segnale SIGINT
Piccolo glossario sui segnali
Segnalai affidabili e non affidabili
Insiemi di segnali
Svuotamento di un insieme di segnali
Popolamento di un insieme di segnali
Aggiunta di segnali a un insieme di segnali
Eliminazione di segnali da un insieme
Verifica della presenza di un segnale in un insieme
Impostazione delle azioni per i segnali
Flag delle azioni per i segnali
Cattura dei segnali
Bloccare e sbloccare segnali
Segnalai pendenti o sospesi
Utilizzo della funzione sigsuspend()
Utilizzo della funzione alarm()
Nozioni avanzate sui segnali
Chiamate a funzioni da un gestore di segnali
Come evitare i problemi legati al codice rientrante
Utilizzo di errno in un gestore di segnali
Gestione dell'errore EINTR
Segnali dell'ambiente Linux comunemente utilizzati
Elevare segnali Linux
Riepilogo

Ora 23 Programmazione client/server
I vantaggi del modello client/server
Il progetto del server TQL
I componenti del progetto TQL
Utilizzo delle opzioni di TQL
Le variabili di ambiente dedicate a TQL
Il linguaggio SQL
Utilizzo di SELECT
Lavorare con le tabelle e campi
Primo avvio di TQL
Selezione di campi
Selezione di record specifici
Ordinamento dei record
Il codice sorgente dei programmi TQL
Manipolazione dei segnali in tqld
Analisi del modulo di ordinamento
Esecuzione di sort
Riepilogo

Ora 24 Utilizzare le pagine man
Una razione in inglese
Introduzione al comando main
Utilizzo del comando man
Il meccanismo delle sezioni
Ricerca delle pagine man
Debug delle pagine man
Conflitti nella documentazione
Esame del capoverso errori (ERRORS)
Uno sguardo al capoverso SEE ALSO (in italiano vedi anche)
Alla ricerca dei file
Bug documentati
Riepilogo
Questo e' solo l'inizio

Appendice A Installazione di Red Hat 6.1

Indice analitico



  Login 

  Non ricordo la password
  Nuovo account
  Cliente 

  Il carrello

 Carrello 

  Informazioni 

  Contatti
  Qualitą del servizio
  Costi e tempi di consegna
  Modalitą di pagamento
  Prezzi
  Sconti
  Privacy