Newsgroup: it.comp.lang.c
Titolo: un'aiuto sulla funzione system

Ciao a tutti...mi servirebbe un aiuto sulla funzione system, per
Linux...
Ho letto su un vecchio manuale quest'esempio: system ('date').
Io ho provato,in un programma,a digitare: 
system ('find / -iname *log* > /temp.txt  ');
ed inoltre:
system ('nbyte = `wc -c /temp.txt`');
C'č qualcosa di sbagliato?..il compilatore mi dice di sě...
Voi sapreste darmi una spiegazione?..
Ciao e grazie,
Alberto

system ('find / -iname *log* > /temp.txt  ');
system ("find / -iname *log* > /temp.txt  ");
-- 
The Follet

 Voi sapreste darmi una spiegazione?..
usa le doppie virgolette :
system ("find / -iname *log* > /temp.txt");
______________________________________________________________________________
Posted Via Binaries.net = SPEED+RETENTION+COMPLETION = 
http://www.binaries.net

The Follet
Una curiosità: se scrivo:
system("rm nome_file");
e "nome_file" non
c'è, il sistema mi manda una riga di errore che mi dice che il file non è
stato trovato. Ma io non voglio che sia il sistema a gestire l'eventualità,
perchè io vado a leggere direttamente il valore restituito da system e
gestisco l'errore personalmente:
if((system"rm nome_file" != 0))
printf("Il file non c'è!\n");
Come posso spiegare al sistema che non
voglio il messaggio?
Ho provato con un pipe, ma non funziona:
system("echo off|rm nome_file");
Grazie a tutti, chiedo scusa per
essermi attaccato alla mail, ma l'oggetto mi sembrava pertinente....
mick
--------------------------------
Inviato via 
http://usenet.iol.it
 


Talking about music is like dancing about architecture.
                -- Laurie Anderson

 system ("find / -iname *log* > /temp.txt  ");
occhio che la shell potrebbe espandere gli "*" (anche se chiamata 
attraverso system e' pur sempre una shell), quindi occorre "quotarli".
Cmq non e' argomento da questo ng.
ciao Anto
-- 
Antonio Cuni, 19 anni, studente
Brainbench C++ Master: 4.6, higher than 98% of all previous test takers.
C Language: 3.32, higher than 79% of all previous test takers.
Guida C/C++ di Programmazione.it: 
http://cpp.programmazione.it

system ("rm nomefile 2> /dev/null");
---[CUT]---
Grazie
1000!  Funziona! =))


Ok,ragazzi,grazie...
VIsto che mi avete risposto,quasi quasi ne approfitterò ancora :-)
ciao!

Cmq non e' argomento da questo ng.
Cosa non č argomento da questo ng?...parlare della funzione system,o
delle caratteristiche della shell?..Nel primo caso,dato che system fa
parte del c,mi pare che sia prorpio pertinente ,l'argomento...
poi c e unix sono legati tra loro...
Alberto.

 delle caratteristiche della shell?..
tutta questa dicussione sulla shell e' OT qui, quindi e' meglio finire 
qua (se vuoi altre info scrivimi in privato)


che *non* e' quello che volevamo noi.
Va be', ma anche se la shell compisse l'espansione, il
risultato sarebbe comunque quello voluto.
Al programmatore serve il risultato della sua operazione e
se il risultato e' identico, non c'e' problema.

 risultato sarebbe comunque quello voluto.
nel primo caso "find" elenca tutti i file con estensione mp3 contenuti 
nel filesystem (nota che parte dalla dir radice). Nel secondo caso 
ricerca in tutto il filesytesm solo i file che si chiamano "uno.mp3" e 
"due.mp3".


 system ('find / -iname *log* > /temp.txt  ');
Probabilmente non hai i diritti per  scrivere in /, prova a scrivere
su ~/temp.txt
Aggiungo solo che se poi hai bisogno di leggere il file temp.txt al
posto di find ti conviene usare popen e poi leggere con le solite
funzioni standard del C.
man popen      per maggiori info :)
-- 
Vanni Brutto
| email 
za...@nofesso.libero.it
      |
| irc nick VanniB   |   ICQ 18526701 |
--- rimuovi nofesso per rispondere ---
---PC powered by Linux kernel 2.4.14vb
Dialogo fra due prostitute a Natale: -
Ma tu  cosa chiedi  a Babbo  Natale? -
Sempre 200.000 lire!