Newsgroup: it.comp.lang.c
Titolo: aiuto....

ciao a tutti.....
Voglio eseguire un programma scritto in c .....
ho come s.o. linux 8.0 mandrake....
dove devo scriverlo, come compilarlo ed eseguirlo ?
io ho provato lanciando il terminale e poi scrivendo il programma con
l'editor vi,
poi ho salvato  il file con estenzione .c,
al prompt ho scritto cc nomefile.c e non ho avuto errori ,
infine ho scritto a.out ma mi dice comando non conosciuto perchč?
grazie e ciao a tutti !!!!!

Digita ./a.out ... dovrebbe andare

 infine ho scritto a.out ma mi dice comando non conosciuto perchè?
Alcuni consigli:
1) come compilatore usa il GCC, non il CC (anche se probabilmente CC e' solo 
   un link al GCC).
2) se ti ha dato errore potrebbe anche non essere stato compilato 
   correttamente, quindi non aver creato l'eseguibile
3) dai un nome significativo al file di output, a.out non e' il massimo 
   IMHO e potrebbe crearti confusione se hai vari progetti nella stessa 
   cartella.
-- 
Mox
"Trust the programmer."
"Don't prevent the programmer from doing what needs to be done."
"Keep the language small and simple."
"Provide only one way to do an operation."

grazie ...
la soluzione č scrivere ./a.out
anche se non ho capito perchč.
date un'occhiata a questo programmino:
main()
{
  long  cont;
  int fine;
cont =0;
fine=0;
while (getchar() != fine)
         ++cont;
printf("%ld\n",cont);
}
a questo punto come credo io se l'utente immette 0 si esce dal ciclo e
stampa quanti caratteri sono stati inseriti.
invece dal ciclo non esce mai anche se inserisco 0
perchč va in loop?

 perchè va in loop?
Perhe' il carattere '0' non e' rappresentato dall'intero 0 (che viene 
rappresentato con '\0'), ma da un altro valore che dipende dalla codifica 
di caratteri che usi.
La seguenza che ha valore intero 0 e' un carattere speciale riservato che 
indica la fine della stringa.
Correggi il tuo codice cosi':
fine = '0';


Mox wrote:
 >> la soluzione è scrivere ./a.out anche se non ho capito perchè.
 > Perche' in Linux generalmente non ci sono i permessi di esecuzione per
 > la cartella corrente, questo viene fatto per motivi di sicurezza, ma si
 > puo' comunque ovviare digidando il prefisso "./" davandi al nome
 > dell'eseguibile, che indica appunto la dir corrente.
[andry ~]$ ls -ld .
drwx------   41 andry    users        8192 ago 21 19:16 .
I permessi di esecuzione per la cartella sono abilitati come vedi. Ti sei
spiegato un po' male.
In Unix, e di conseguenza in GNU/Linux (ma anche in Dos ed in Win), i file
eseguibili di cui si da il nome dalla linea di comando vengono cercati in
un certo numero di cartelle. Quali siano queste cartelle si puo' sapere
accedendo al valore della variabile PATH:
[andry ~]$ echo $PATH
.:/home/andry/bin:/usr/local/kde/bin:/usr/local/qt/bin:/bin [eccetera]
Come vedi le varie directory sono separate da ':'. Nell'ordine, sul mio 
sistema il percorso di ricerca e' il seguente:
. (ovvero la directory corrente)
/home/andry/bin (ovvero la directory dove piazzo i miei script)
/usr/local/kde/bin (la directory dove ho ricompilato kde e piazzato gli 
eseguibili)
/usr/local/qt/bin (come prima ma per le QT)
/bin (directory contente eseguibili quali bash, sh, mv, cp eccetera.
Puoi cambiare questo percorso in questo modo:
PATH=[aggiunte]:$PATH
Se vuoi aggiungere . come percorso di ricerca senza doverlo reinserire ad 
ogni avvio del computer, puoi farlo modificando il file .bashrc nella tua 
directory, ed aggiungendo al fondo del file la riga:
PATH=.:$PATH
Spero di essere stato chiaro e non troppo dispersivo. Comunque ci sono 
sempre gli Appunti di Informatica Libera ;-). Ciao.
-- 
Andrea Bergia - studente
Linux Registred User #281550

 wrote in message
news:3d6134c3$
1...@newssrv.quipo.it

Non riconosce il comando per il semplice fatto che nella tua variabile
PATH (vedi la sua impostazione con 'echo $PATH') non c'č la directory
corrente e quindi non trova nessun file eseguibile con quel nome.
Per eseguire il file devi specificare il percorso ad esempio digitando
da prompt
./a.out.
Comunque sarebbe meglio che compilando specifichi il nome del file di
output ad esempio:
gcc mio.c -o nomeoutput
dai un'occhiata a
http://www.linuxzine.it/programmare_linux/programmare.html
non č ancora 'terminato' ma per iniziare va benissimo...
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 anche se non ho capito perchè.
Per quel poco che ne ho capito, se tu non specifichi la directory dove si
trova il programma, linux guarda solo nella sua path. Se tu hai il programma
nella directory /home/nick/ , lo puoi richiamare anche scrivendo
/home/nick/a.out . Il carattere "." sta a simboleggiare la directory
corrente. Claro?
(Magari lo sai già: ".." significa cartella superiore, "~" [AltGr + 0
tastiera alfanumerica] sta al posto della tua Home)
Rispettosi saluti
                   Franco "Belinde"