[C] Come faccio ad eseguire i programmi?
Buongiorno a tutti. Mi scuso fin da subito per la mia ignoranza in fatto di Linux in generale, ma è da poco che ho fatto il grande salto e non sono ancora tanto abituato al nuovo ambiente. Comunque per il momento mi sto trovando alla grande..
A parte ciò, in Windows usavo per fare qualche programmino CodeBlocks, ma non è che mi piaceva tantissimo. Qui su Ubuntu, ho visto che c'è GCC che compila il programma, però facendo compilare ad esempio
per compilarlo faccio (una volta essere nella cartella dove si trova il file .c)
Fin qui sono arrivato, non mi da nessun errore, perchè mi crea un file .exe. Però poi, come faccio a vedere l'esecuzione reale del programma??
E in generale, qualcuno mi può spiegare come si usa GCC?
A parte ciò, in Windows usavo per fare qualche programmino CodeBlocks, ma non è che mi piaceva tantissimo. Qui su Ubuntu, ho visto che c'è GCC che compila il programma, però facendo compilare ad esempio
#include <stdio.h> #define EOL '\n' int main() { int totR = 0; int xc; while ((xc=getchar()) != EOF) { if(xc==EOL) totR++; } printf("In input ci sono %d righe\n", totR); return 0; }
per compilarlo faccio (una volta essere nella cartella dove si trova il file .c)
gcc contaR_2.c
Fin qui sono arrivato, non mi da nessun errore, perchè mi crea un file .exe. Però poi, come faccio a vedere l'esecuzione reale del programma??
E in generale, qualcuno mi può spiegare come si usa GCC?
Risposte
Fin qui sono arrivato, non mi da nessun errore, perchè mi crea un file .exe. Però poi, come faccio a vedere l'esecuzione reale del programma??
Non ho capito come fa a creare un file .exe, per caso hai preimpostato l'estensione degli output? Forse vuoi dire che crea un file eseguibile...
Per eseguirlo, da linea di comando usa
./nomefile
(ovvero punto-barra-nomefile, seguito da invio oc.), ovviamente dalla directory dove "nomefile", risiede. Puoi usare anche il path assoluto, se è in /usr/tizio/programmi:
/usr/tizio/programmi/nomefile
E in generale, qualcuno mi può spiegare come si usa GCC?
"man gcc"

Non so come ha fatto ha creare un file.exe... Comunque ho capito come fare ad eseguirlo. L'unica cosa è che se faccio gcc contaR_2.c -o contaR_2 e poi ./contaR_2, non riesco a far in modo di terminare il programma in modo tale che mi faccia vedere la cosa mi dice la printf. Come potrei fare?
Per il manuale "man gcc" avevo già letto sulla guida c sul sito html.it della sua esistenza. Mi chiedevo soltanto se ne esisteva una un pò più compatta ed esautiente
..
Per il manuale "man gcc" avevo già letto sulla guida c sul sito html.it della sua esistenza. Mi chiedevo soltanto se ne esisteva una un pò più compatta ed esautiente

Non capisco cosa intendi "in modo di terminare il programma", spiegati meglio. Non termina? Non visualizza nulla?
Per altra guida, http://gcc.gnu.org/
Per altra guida, http://gcc.gnu.org/
Si, è vero, forse non mi sto spiegando bene. Se io faccio ./contaR_2, dopo aver fatto gcc contaR_2 -o contaR_2, eseguo il programma, in cui io posso inserire i caratteri da far leggere per determinare quante r minuscole o maiuscole ho inserito. Però, alla fine del file contaR_2.c, c'è " printf("In input ci sono %d righe\n", totR) ", che mi dovrebbe dire quante r ci sono. Il fatto che non capisco è come fare a far "terminare" il programma, perchè se faccio Invio, va a capo, Ctrl+Z termina bruscamente, Ctrl+C esce dal programma e basta...
Ctrl-Z dovrebbe andare in background e darti una informazione sul terminale tipo
[1]+ Stopped xxxxx
Ctrl-C interrompe, quindi il programma termina prima di uscire dal ciclo.
Proverei Ctrl-D che normalmente manda EOF se sei ad inizio riga (con bash, ma anche altre shell presumo).
[1]+ Stopped xxxxx
Ctrl-C interrompe, quindi il programma termina prima di uscire dal ciclo.
Proverei Ctrl-D che normalmente manda EOF se sei ad inizio riga (con bash, ma anche altre shell presumo).
Ah ecco, io sapevo che l'EOF era Ctrl+Z, ma non sapevo che ero solo in Windows. Grazie per avermi detto del Ctrl+D, con questa sequenza il programma va, cioè riesco a vedere cosa mi dice la printf....
Normalmente quando si fa un'applicazione su terminale non si richiede l'inserimento di EOF. Sarebbe meglio permettere la chiusura dell'applicazione in qualche altro modo.