Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - execv
Forum - C/C++ - execv

Avatar
tekdu (Normal User)
Rookie


Messaggi: 45
Iscritto: 07/04/2010

Segnala al moderatore
Postato alle 19:24
Venerdì, 25/01/2013
come posso usare il comando cat di linux in un programma c++?

PM Quote
Avatar
GN (Member)
Guru


Messaggi: 772
Iscritto: 30/04/2011

Segnala al moderatore
Postato alle 20:14
Venerdì, 25/01/2013
Conosco poco sia linux che C/C++ però se non sbaglio per eseguire un comando della shell di sistema c'è la funzione system("comando").

PM Quote
Avatar
tekdu (Normal User)
Rookie


Messaggi: 45
Iscritto: 07/04/2010

Segnala al moderatore
Postato alle 20:25
Venerdì, 25/01/2013
Ho provato ma system non compila. Bisogna usare execv//execve eccetera..
Questo lo so ma non so bene come usarlo, dovrebbe essere tipo:
Codice sorgente - presumibilmente Plain Text

  1. execv("/bin/cat"',path1,path2,path3);


Scopo:"appendere" il file path2 a path1 e mettere il risultato in path3

PM Quote
Avatar
GN (Member)
Guru


Messaggi: 772
Iscritto: 30/04/2011

Segnala al moderatore
Postato alle 20:41
Venerdì, 25/01/2013
Scusa ma non ti conviene usare le funzioni native come (fopen, ecc.) per leggere i due files, accodarli e scriverlo nel terzo? Così girerebbe non solo su linux e penso migliorerebbero anche le prestazioni...

PM Quote
Avatar
tekdu (Normal User)
Rookie


Messaggi: 45
Iscritto: 07/04/2010

Segnala al moderatore
Postato alle 22:09
Venerdì, 25/01/2013
Testo quotato

Postato originariamente da GN:

Scusa ma non ti conviene usare le funzioni native come (fopen, ecc.) per leggere i due files, accodarli e scriverlo nel terzo? Così girerebbe non solo su linux e penso migliorerebbero anche le prestazioni...


Lo so, solo che programmatore=pigro.
Fa fatica scrivere il codice xD. Inoltre fa sempre comodo imparare qualcosa!

PM Quote
Avatar
tekdu (Normal User)
Rookie


Messaggi: 45
Iscritto: 07/04/2010

Segnala al moderatore
Postato alle 17:07
Sabato, 26/01/2013
bhè, alla fine ho scritto questo:

Codice sorgente - presumibilmente C#

  1. int Master::append(string src,string dst,ios::openmode mode){
  2.         try{
  3.         ifstream is(src.c_str());
  4.         ofstream os(dst.c_str(),mode);
  5.         is.exceptions(ifstream::failbit);
  6.         os.exceptions(ios::failbit);
  7.         os<<is.rdbuf();
  8.         os.close();
  9.         is.close();
  10.         }
  11.         catch (exception& e){
  12.                 cout<<"error appending file: "<<e.what()<<endl;
  13.                 return 1;
  14.         }
  15.         return 0;
  16. }



grazie comunque!

PM Quote
Avatar
GN (Member)
Guru


Messaggi: 772
Iscritto: 30/04/2011

Segnala al moderatore
Postato alle 19:47
Sabato, 26/01/2013
Si intendevo proprio una cosa del genere. Di niente ;)

PM Quote