[>a2449.html>] [<a2447.html<] [^a2.html^]


Capitolo 352.   Linguaggio C

352.1   *.h, *.o e *.c

Che cosa sono precisamente i file *.h e *.o in un programma C?

---------

Supponendo di lavorare sul file miofile, il codice sorgente vero e proprio viene scritto in miofile.c. miofile.h, detto file di intestazione contiene le dichiarazioni delle variabili e delle funzioni implementate nel file miofile.c.

Infine il codice oggetto risultante dalla compilazione risiederà in miofile.o.

352.2   Avvio del compilatore C++

Come faccio ad avviare il compilatore C++ dalla shell di Linux?

---------

Con:

$ g++ -o nomefile nomefile.cpp[Invio]

-o serve a dare un nome all'eseguibile diverso dal nome predefinito, che è 'a.out'.

352.3   Messaggio di errore: bus error

Qualcuno sa dirmi in quali condizioni si verifica un errore di tipoBus Error? Ho scritto un'applicazione C++ che ogni tanto senza spiegazioni cessa di funzionare e restituisce un Bus Error in zone di codice diverse.

---------

Compila il programma con l'opzione -g ed eseguilo. Quando si interrompe, analizza le cause con:

$ dbx nomeprogr core[Invio]

e tramite l'istruzione where puoi vedere dove è accaduto l'errore.

Solitamente Bus Error accade per un superamento dei limiti di memoria, un indice di un array che supera il limite, un fine-stringa mancante ecc.

352.4   Conio.h (da Dos a Linux)

Girovagando tra i miei passati programmi compilati col Turbo C++ ne ho trovato uno che mi potrebbe servire anche in Linux. Questo programma però include alcuni file tipo conio.h, graphics.h e dos.h che in Linux naturalmente non ci sono. Il mio problema è quello di sapere se è possibile trovare file .h omologhi anche in Linux o devo cambiare radicalmente il sorgente?

---------

Cerca su sunsite.unc.edu un file che si chiama:

linux-conio-x.yy.tgz

che sostituisce il conio.h della Borland; ho avuto qualche problemino ma l'ho ritoccato e funziona discretamente.

Comunque, molto brevemente (e imprecisamente):

        conio.h -> ncurses.h
        graphics.h -> vga.h
        dos.h -> ???

Tuttavia le librerie sotto Linux hanno un modo di operare completamente diverso e ti consiglio uno studio accurato della documentazione.

LDR --- Copyright © 1999-2000 Gaetano Paolone --  bigpaul @ pluto.linux.it

[>a2449.html>] [<a2447.html<] [^a2.html^]