Ma quale C++! exec() e` un`altra system call..
DaUlisse.. come devo dirtelo di scrivere che cacchio di errore ti da`?![]()
Ma quale C++! exec() e` un`altra system call..
DaUlisse.. come devo dirtelo di scrivere che cacchio di errore ti da`?![]()
ahh... mi da Lvalue required !!!!:bubu:
e... cosa fa la exec()
con exec* si intende tutta la famiglia delle exec(execl execlp ecc..)
comunque Lvalue significa che si aspetta un valore, forse
perche stdout e definito come costante ed e' uguale a 1? mentre stdin
e' uguale a 0 e stderr e' uguale a 2!, ma forse ho invertito le prime due...
DaUlisse, per favore, puoi postare il codice esattamente come l`hai scritto tu?
Si` kentaromiura, pero` stdin, stdout e stderr e` meglio dire che "corrispondono" ai descrittori 0, 1, 2. D`altra parte sono strutture FILE*, non descrittori, come saprai.
Questo vale di sicuro per sistemi UNIX, in Windows invece non so bene come stiano le cose. :master:
A mio avviso dovrebbe essere uno standard del c.Originariamente inviato da r0x
DaUlisse, per favore, puoi postare il codice esattamente come l`hai scritto tu?
..
Questo vale di sicuro per sistemi UNIX, in Windows invece non so bene come stiano le cose. :master:
non so se ANSI o addirittura Ritchie & Kerny..
freopen("file.txt","wt","stdout");
system(comando);
-->questo e' quello che ho scritto e come ho gia detto se aggiungo stdout=mi da errore
stdout=freopen("file.txt","wt",stdout);
system(comando);
![]()
uffa... ho detto che se scrivo quella linea di codice mi da errore!!!
(l'errore che ho scritto prima):quote:
kentaromiura, io intendo il concetto di descrittore. In Windows ci sono gli "handle", che nascondono parecchio la vera implementazione..
DaUlisse: io ti uccido.
1) Ho visto come sono definiti stdin/stdout/stderr in stdio.h in VC++ (c`era da aspettarselo..) e quindi ho capito il perche` dell`errore sull`assegnazione;
2) Dovrebbe funzionare anche senza la riassegnazione;
3) Fai scervellare la gente e non sei capace neanche a copiare. stdout non va messo fra le virgolette e il mode e` "w+":
codice:freopen("file.txt","wt","stdout");Per sicurezza:codice:freopen("file.txt","w+",stdout);
Come posso non incazzarmi?codice:if( freopen( "file.txt", "w+", stdout ) == NULL ) puts( "Errore su freopen" );![]()
mi vien da piangere... e vero che io nn mi spiego sempre al meglio pero in questo caso io non centro!!!!!
Come devo dirvi che ho gia provato questa linea di codice:
freopen("file.txt","wt",stdout); ??(e' la prima che ho provato!!!)
e come ho gia detto rindirizza correttamente le printf() ma per quello che riguarda la system no!!!!
quindi la riga di codice e' giusta ma il risultato no o almeno per meta!!!!!!!
![]()
![]()
![]()
![]()
![]()