2012-02-15 17 views
6

ho compilato un programma dal mio Ububtu 10.10 terminaleL'esecuzione del programma C in Linux Terminal

gcc file_name.c -o new_file

comando. Ha compilato con successo la creazione di un file eseguibile denominato new_file. Ma quando stavo cercando di eseguirlo da questo comando

./new_file 

Si dice che il permesso è negato di new_file. Ho controllato le proprietà di autorizzazione di quel file che ho il permesso di leggere & scrivendolo (sono l'unico utente di quel sistema). Potete per favore aiutarmi a capire il problema?

+1

È necessario disporre dell'autorizzazione per l'esecuzione. Fai: 'chmod + x newfile' nella stessa directory. – ArjunShankar

+2

'gcc' dovrebbe rendere eseguibili, err, eseguibili. Qual è la tua umask? –

+0

Perché non aumenti il ​​tasso di accettazione? Inizia ad accettare le persone giuste o la comunità non ti aiuterà più. – DonCallisto

risposta

11

Devi dargli exe. permessi.

Quindi: chmod +x new_file

Quando si crea un nuovo file con il gcc, per impostazione predefinita, questo non è eseguibile. Quindi, devi dargli i permessi di esecuzione.

Con chmod(see this) si modificano le autorizzazioni sul file.

In questo caso specifico, hai dato i permessi di esecuzione (+ [più] significa dato, 'x' significa esecuzione) a quel file.

Se si desidera revocare tale autorizzazione, è possibile digitare: chmod -x filename

+0

Grazie. Per favore, spiegherebbe un po 'di più su questo comando? –

+1

Le autorizzazioni in Linux (e probabilmente nella maggior parte dei sistemi Unix) sono rappresentate da tre bit: R, W e X. Se un file ha il bit di autorizzazione "R" impostato, è leggibile. Se il bit 'W' è impostato, è scrivibile. Se il bit 'X' è impostato, è eseguibile. A differenza di Windows, dove la capacità di eseguire un file è definita in base all'estensione del file, in Linux è possibile rendere ogni file eseguibile semplicemente specificando il flag "X". Sono disponibili tre set di bit di autorizzazione: uno per il proprietario del file, il secondo per il gruppo che possiede il file e il terzo per tutti gli altri. –

+1

"Quando si crea un nuovo file con gcc, per impostazione predefinita, questo non è eseguibile." ?? No, normalmente gcc crea file eseguibili con x bit set. Rafi deve avere qualche strana impostazione che lo inibisce. –

-1

Dopo la compilazione, il file si trova in a.out tenta di utilizzare a.out.

+5

non quando viene usato -o nuovo_file – hroptatyr

Problemi correlati