Newsgroup: it.comp.lang.c
Titolo: Sorgente facile ma che non funziona

IL sorgente è il seguente:
# include <stdlib.h>
main()
{
system ("format a:");
}
All' eseguzione il pc si blocca e lo devo riavviare.
Mi hanno detto che c'è un problema con la funzione.
Voi ne sapete qualcosa?
Oppure conoscete un altro modo per ottenere lo stesso risultato?
Grazie tante
Ciao ciao

 Voi ne sapete qualcosa?
Per prima cosa dovresti dichiarare la funzione main in modo che restituisca
un int .
In secondo luogo fai una chiamata ad un programma senza specificare il path
dello stesso.
Cosě com'č la tua funzione ricerca il programma nella stessa directory in
cui č contenuto.
Se ci sono ancora problemi non esitare a dirmelo.
Ciao.

All' eseguzione il pc si blocca e lo devo riavviare.
che io sappia il DOS rimane inchiodato finchè non ritorni il controllo 
al sistema. Quindi:
int main(void)
{
    	system ("format a:");
    	return 0;
}

 }
Il problema non è questo. I compilatori lasciano molta libertà sulla
definizione della funzione main. Molti dei quali, quando non vengono
aggiunte le istruzioni adeguate - come la return 0-, provvedono loro stessi
ad aggiungerle.
System esegue una chiamata ad uno script o ad un programma qualsiasi -
ovviamente eseguibile - utilizzando come supporto la riga di comando. Uno
svantaggio è che la stessa non supporta in modo adeguato le \ e talvolta il
compilatore restituisce dei warning. Quindi l'unico modo per aggirare il
problema è fare riferimento ad applicazioni contenute nella stessa cartella
del tuo programma oppure cambiare la directory corrente con l'apposita
funzione.
Ciao.

 }
Per bloccare l'esecuzione non è sufficiente omettere il return finale.
EMG


Il sorgente mi "funziona" (o almeno diciamo cosi) č la funzione format che
se lanciata dal programma non funziona.
Ho provato a digitarla in DOS e funziona.
Il programma al momento del esecuzione mi richiede di digitare l'etichetta e
poi quando inizia la formattazione si blocca e sono costretto a riavviare.
Utilizzo come compilatore il DJGPP.
Se quel sorgente ha dei problemi lo posso cambiare con un altro ma non
conosco altre funzioni per ottenere lo stesso risultato.
Mi serve un programma che quando si avvia mi formatta il floppy ......tutto
qui.
Sicuramente voi siete piů esperti di me quindi se mi potete consigliare
qualcosa, ve ne sarei molto grato.
Ciao e grazie

 poi quando inizia la formattazione si blocca e sono costretto a riavviare.
Come lo conoscevo io il comando format eseguiva tale procedimento prima di
domandare all'utente l'etichetta.
Cmq da me funziona senza alcun problema.
Gli unici problemi che possono insorgerere con questa funzione sono casi
come:
system("c:\windows\command\format a:");
che per ovvi motivi viene mal interpretata.
#include<stdlib.h>
int main(void) {
    system("format a:");
    system("pause");
}
Indipendentemente dalla funzione un problema che mi si può presentare è
quando non imposto la variabile path del sistema.
Un altro simile, che causa il blocco dell'applicazione format in determinati
casi, è il Norton che solleva fin troppi warnig nelle formattazioni se si
applica la massima protezione.
Ciao.

 che per ovvi motivi viene mal interpretata.
in C se in una stringa vuoi mettere il backslash lo devi raddoppiare,
percio'
 system("c:\\windows\\command\\format a:");
cosi' il compilatore non "mal interpreta"
ciao
donCiccio

Utilizzo come compilatore il DJGPP.
djgpp ? cioé tu richiami 
format.com
 dall'interno di un ambiente
protetto ? e ci credo che non funzioni .... format utilizza i servizi
del bios, e il bios non é stato ideato x lavorare in modo protetto ne
tantomeno in modo virtuale 86. cambia compilatore.
usa un compilatore C che lavori in modo reale e stai meglio!
ciao
cod



Nulla da fare non funziona .
Ho provato anche a lanciarlo in modalità provvisoria (Windows 98 2ed) ma
nulla da fare si blocca lo stesso.
Conoscete qualche altra funzione per ottenere lo steso risultato?
Grazie tante
Ciao

 qui.
e scrivere un file batch?
ciao
donCiccio