Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2008
    Messaggi
    312

    eseguire cat file in c

    Salve a tutti,
    devo eseguire una semplice cut in c passando il nome del file come argomento del main. Il problema è che mi si blocca tutto il programma.
    Ho fatto quanto segue:
    codice:
    int main(int argc,char* argv[]){
    int e = execl("cat","cat","argv[1]",0);
    if(e==-1)
    printf("Errore nella execl");
    }
    Sbaglio nel passare i parametri? Dato che il file si trova esattamente nella cartella dov'è il codice c basta che gli passo il nome?

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481

    Re: eseguire cat file in c

    Originariamente inviato da lio.b
    una semplice cut
    cut e cat sono cose diverse ...

    codice:
    int e = execl("cat","cat", "argv[1]" ,0);
    argv[1] contiene il nome del file, non devi passarlo come stringa ...

    int e = execl("cat","cat", argv[1], 0);
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2008
    Messaggi
    312
    Hai ragione, devo fare cat ma non funziona lo stesso. Non è che sbaglio nella riga di comando? il file si chiama proprio file e si trova nella stessa directory dove c'è il file da eseguire. Io scrivo ./cat file. E' qui l'errore?

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Prova

    int e = execl("/bin/cat", "cat", argv[1], 0);
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2008
    Messaggi
    312
    Grazie,
    ora funziona tutto bene. Una piccola cosa (scusami se abuso della tua pazienza). Se il file da passare non si trova nella directory corrente da gcc deo passare tutto il path? Tipo ./executor home/documenti/file?
    Grazie ancora

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Ovviamente sì ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Originariamente inviato da oregon
    Prova

    int e = execl("/bin/cat", "cat", argv[1], 0);
    prina ti sorprendo con le mani su delphi , adesso su unix
    ma quando ti fermerai ??

  8. #8
    Cmq non vorrei sbagliarmi ma è inutile eseguire codice dopo una exec, in quanto il processo padre viene completamente sostituito dal codice del figlio. Ho provato a passare in input da riga di comando un file che non esisteva e difatti non mi ha fatto la stampa nel main...

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Originariamente inviato da mondobimbi
    prina ti sorprendo con le mani su delphi , adesso su unix
    ma quando ti fermerai ??
    Adesso gestisco SLES e RH, oltre a vari server Windows, ma ho cominciato con SCO Unix e Xenix (per chi se lo ricorda ... bei tempi ...) ...

    No MP tecnici (non rispondo nemmeno!), usa il forum.

  10. #10
    Originariamente inviato da frankitt
    Cmq non vorrei sbagliarmi ma è inutile eseguire codice dopo una exec
    Ha senso eseguire codice solo se la exec fallisce, dal momento che in tal caso il codice in esecuzione è ancora il tuo.
    Amaro C++, il gusto pieno dell'undefined behavior.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.