Newsgroup: it.comp.os.linux.development
Titolo: Compilazione con gcc

E' da pochissimo che utilizzo Linux.
Ho creato un semplicissimo listato in 'c' che stampa una stringa ed esce.
Gcc, il compilatore c di linux non mi dą errore, crea il file eseguibile, ma
se chiamo dalla riga di comando il file non me lo esegue. Premetto che
compilo con 'gcc nomedelfile -ofiledioutput'.
Grazie.

compilo con 'gcc nomedelfile -ofiledioutput'.
hai dato
	chmod a+x nomedelfile
Ciao,
luigi

 wrote in message
n1vdcukvajr8nsmgg...@4ax.com...

Si, ma anche se dò i privilegi di esecuzione a tutti l'interprete mi
risponde sempre con:
command not found
Ho la versione Linux 'RedHat 6.0'.

 ma se chiamo dalla riga di comando il file non me lo esegue
prova con
$ ./nomeprog
se così funziona modificati PATH
-Davide-

 	chmod a+x nomedelfile
Non serve, ci pensa gcc.
E` un tipico smarrimento da principiante: non hai la directory corrente 
(`.') nel path. Quindi invocare il programma come "filedioutput" non 
funziona, mentre "./filedioutput" si`.
Ciao
  David
-- 
<d.santinoli presso mi. flashnet. it>

se così funziona modificati PATH
Non è molto indicato avere la directory corrente (.) nel PATH
--
Topoldo
(Grazie a Dio, sono ateo)

 se così funziona modificati PATH
*Sconsigliatissimo*. Includere la current directory nel $PATH non e`
*mai* una buona idea.
Bye,
 Emmanuele.
-- 
Emmanuele Bassi (Zefram)           [ 
http://www.radiance.d2g.com/~zefram
 ]
GnuPG Key fingerprint = 4DD0 C90D 4070 F071 5738  08BD 8ECC DB8F A432 0FF4

 Non è molto indicato avere la directory corrente (.) nel PATH
Perchè?!
Per quali motivi?
-Davide-


1. Lanci un comando e lo scrivi con un errore di digitazione; se
corrisponde ad un eseguibile presente nella directory . viene
eseguito. E' un errore piů comune di quanto immagini
2. Un eseguibile presente in . potrebbe avere lo stesso nome di un
comando standard (magari perchč messo di proposito da un attaccante)
ed essere lanciato al posto di questo involontariamente. In pratica,
dovresti avere la certezza che PATH contenga solo directory *sicure*
contenenti eseguibili difficilmente manomissibili o sostituibili. Un
esempio: un hacker č riuscito a mettere in /tmp un exploit, e lo ha
salvato con il nome ls. Non appena qualcuno (magari root) e entra in
/tmp e vuole visualizzarne il contenuto, scrive ls e invece di vedere
l'elenco dei file, avvia l'exploit.
3. Se proprio vuoi aggiungere . nel PATH aggiungilo come ULTIMA voce,
MAI prima delle directory sicure


David Santinoli <sant...@aidi.milano> wrote in message
3CC7078F...@aidi.milano...

Il principiante non ha capito perņ perchč l'interprete dei comandi non lo
trova anche se il file risiede nella directory corrente.
Comunque grazie.

 Comunque grazie.
Perché in win la PATH contiene sempre ".\", in linux sei tu che glielo devi
dire, altrimenti ti abitui a lanciare i comandi nella dir corrente con
"./[exec]", nulla di + semplice ....
Ciao, Grava

 wrote in message
gzSx8.61091$vF6.1...@news2.tin.it...

Bene, capita la differenza.

 Comunque grazie.
perche' in linux non esistono path predefiniti, ma solo quelli 
specificati
-- 
#include <stdio.h>/* (C) BW2K+2 This code is released under GPL 2+ */
int main(void){char c[]={98,108,97,107,119,111,108,102,64,116,105,
115,99,97,108,105,46,105,116,32,119,101,98,46,116,105,115,99,97,108,
105,46,105,116,47,98,108,97,107,119,111,108,102,0};printf("%s\n",c);}

 trova anche se il file risiede nella directory corrente.
Te lo ha detto: non hai la directory corrente nel path, dove path e`
la lista di directory che l'interprete dei comandi percorre alla
ricerca del comando che gli hai detto di eseguire.
Massimiliano