Newsgroup: it.comp.lang.c
Titolo: Comandi da Console application

Come si esegue il comando dos "exit" in C?
Ad esempio CLS --> system("cls"); funziona!
ma non funziona con l'exit --> system("exit")

 ma non funziona con l'exit --> system("exit")
Puoi usare la exit():
#include <stdlib.h>
/*Termina il programma in modo normale.
*L'argomento passatole è il valore di uscita
*del processo.
*/
void exit(int);
Oppure mettere un return in main().
Saluti.

beno wrote:

La exit e' un comando interno alla shell, che dice allo stesso programma di 
terminarsi. Non conosco i dettagli implementativi della shell di dos, pero' 
dovrebbe forkare prima di eseguire un comando (se non altro per permettere 
le pipe classiche), quindi la system("exit") puo' far terminare solo il 
fork... ammesso che venga intercettato dal fork (dubito che il codice per 
interpretarlo venga eseguito durante la fork).
Oki, non e' una fork, perche' in Windows non si chiama cosi', ma il 
risultato e' quello :)
Spostati su it.comp.programmare.win32 per maggiori dettagli.
-- 
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."

 ma non funziona con l'exit --> system("exit")
Non hai ben chiaro cosa fa il comando exit, cioe' chiudere il command
interpreter attuale; la system chiama una seconda copia di 
command.com
,
ma gli fai eseguire il comando exit che lo chiude, cioe' un 'operazione
inutile perche' si chiuderebbe lo stesso. In ogni caso e' totalmente OT
perche' non e' un problema inerente il linguaggio C ma di utilizzo del
DOS.
-- 
-=[]=---iAN CooG---=[]=-
Judgement day the second coming arrives
Before you see the light, you must die!

 Puoi usare la exit():
D'OH! >_<


 D'OH! >_<
???
Saluti

 Sorvolavo il NG con il mio Star Crow quando beno
[FIGO]
Per far chiudere la finestra DOS mi è bastato fare una chiamata della
funzione exit() senza passare alcun argomento.

 funzione exit() senza passare alcun argomento.
E il compilatore te l'ha accettata? La funzione standard exit() richiede
obbligatoriamente un parametro.
EMG
--
EMAG Software Homepage:     
http://www.emagsoftware.it
The EMG's ZX-Spectrum Page: 
http://www.emagsoftware.it/spectrum
The Best of Spectrum Games: 
http://www.emagsoftware.it/tbosg

Esatto. Almeno nella piattaforma .NET, dovrei provare con il VS 6.0,
ma credo che funzioni lo stesso.

 ???
La exit() termina il programma, non chiude la shell dos in cui sta
girando, sempre che sia questo l'intento. L'illusione che si chiuda e'
data dal fatto di aver lanciato l'eseguibile da windows, che esegue
l'exe con la sintassi COMMAND /C nomeexe (il /C serve per terminare
command una volta terminato il programma), ma prova a lanciarlo da un
prompt di dos: il programma terminera' correttamente ma la shell dos non
si chiudera' di certo. Poi c'e' da combattere contro eventuali messaggi
"popup" in cui si e' obbligati a premere ctrl-c per chiudere la shell...
-- 
-=[]=---iAN CooG---=[]=-
Un impegno concreto: piu'
pleistescion per tutti

 funzione exit() senza passare alcun argomento.
Illusione. Hai lanciato il programma da windows. Riprova da prompt di
msdos (start/esegui "command")
-- 
-=[]=---iAN CooG---=[]=-
Quoting problems with OutlookExpress?
http://home.in.tum.de/~jain/software/oe-quotefix/

Ho lanciato anche l'exe e funziona

 Ho lanciato anche l'exe e funziona
Mi permetto di non crederci:
int main(void)
{
    exit();
}
Non puo' chiudere la shell dos. Cosa ci sfugge?
