Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1

    Eseguire comandi linux e leggere l'output

    Su linux è possibile , tramite un programma(c++), eseguire comandi shell e ottenere il risultato che ,normalmente sarebbe stampato a video (standard output), come stringa?

    (come fa python importando il modulo 'commands')
    grazie...


  2. #2
    non ho capito esattamente cosa intendi, ma con system("ls"); dovresti aver quel che vuoi.

    Gnix
    http://www.ptrace.net

  3. #3
    grazie mille
    in pratica era quello che volevo,

    ma come faccio ,x esempio, ad avere lo standard output su un textedit?

    grazie ancora

  4. #4
    Utente di HTML.it L'avatar di XWolverineX
    Registrato dal
    Aug 2005
    residenza
    Prague
    Messaggi
    2,591
    Originariamente inviato da van4dium
    grazie mille
    in pratica era quello che volevo,

    ma come faccio ,x esempio, ad avere lo standard output su un textedit?

    grazie ancora
    Intendi...scrivere su un file?
    "Se proprio devono piratare, almeno piratino il nostro." (Bill Gates)

    "Non è possibile che 2 istituzioni statali mi mettano esami nello stesso giorno." (XWolverineX)

    http://xvincentx.netsons.org/programBlog

  5. #5
    No , non devo scriverlo in un file ma ottenere il risultato come variabile (possibilmente stringa),

    io ,ad esempio, con python per ottenere l'output di un comando shell (Linux), faccio uno script così:


    import commands

    shellout = commands.getoutput('ls')

    /-----------------------------------------------\

    Nella variabile 'shellout' è contenuto l'output di 'ls' , ovvero la lista dei file della cartella corrente
    restituita come stringa ,da poter scrivere dove si vuole.

    In c++ è possibile (sicuramente) fare ciò?


  6. #6
    X inviare il comando alla shell (sistema) ho trovato la funzione:

    system("comando");

    Ma come faccio a settare una variabile con l'output che normalmente viene scritto sulla console?

    Grazie .

  7. #7
    Utente di HTML.it L'avatar di XWolverineX
    Registrato dal
    Aug 2005
    residenza
    Prague
    Messaggi
    2,591
    http://msdn2.microsoft.com/en-us/library/277bwbdz.aspx

    è tutto ciò che può fare system
    "Se proprio devono piratare, almeno piratino il nostro." (Bill Gates)

    "Non è possibile che 2 istituzioni statali mi mettano esami nello stesso giorno." (XWolverineX)

    http://xvincentx.netsons.org/programBlog

  8. #8
    Come da reference l'unico valore ritornato da system() è un int che identifica se il comando è stato eseguito con successo o se si sono verificati errori. Una soluzione è reindirizzare l'output del comando in questo modo system("ls -la >> list.txt"); e poi leggere il contenuto del file.
    Altra soluzione potrebbe consistere nell'utilizzo della funzione popen().

    NB la funzione popen non è ANSI c!!!

  9. #9
    codice:
    C:\Python24>python.exe
    Python 2.4.2 (#67, Sep 28 2005, 12:41:11) [MSC v.1310 32 bit (Intel)] on win32
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import popen2
    >>> cmd = popen2.popen4('dir C:\\')
    >>> print cmd[0].read()
     Il volume nell'unità C è Windows
     Numero di serie del volume: F0E0-8B27
    
     Directory di C:\
    
    13/05/2006  18.49    <DIR>          .idlerc
    03/11/2005  16.19                 0 AUTOEXEC.BAT
    15/12/2005  09.00        11.966.065 AVG7QT.DAT
    03/11/2005  16.19                 0 CONFIG.SYS
    03/12/2005  18.41    <DIR>          Documents and Settings
    03/11/2005  16.26    <DIR>          mgafold
    27/11/2005  20.41    <DIR>          nmap
    03/11/2005  16.20    <DIR>          Program Files
    29/06/2006  10.19    <DIR>          Programmi
    02/06/2006  18.11    <DIR>          Python24
    24/07/2006  09.44    <DIR>          WINDOWS
                   3 File     11.966.065 byte
                   8 Directory   6.492.270.592 byte disponibili
    Rilasciata Python FTP Server library 0.5.1
    http://code.google.com/p/pyftpdlib/

    We'll be those who'll make the italian folks know how difficult can be defecating in Southern California without having the crap flying all around the house.

  10. #10
    Utente di HTML.it L'avatar di XWolverineX
    Registrato dal
    Aug 2005
    residenza
    Prague
    Messaggi
    2,591
    Originariamente inviato da billiejoex
    codice:
    C:\Python24>python.exe
    Python 2.4.2 (#67, Sep 28 2005, 12:41:11) [MSC v.1310 32 bit (Intel)] on win32
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import popen2
    >>> cmd = popen2.popen4('dir C:\\')
    >>> print cmd[0].read()
     Il volume nell'unità C è Windows
     Numero di serie del volume: F0E0-8B27
    
     Directory di C:\
    
    13/05/2006  18.49    <DIR>          .idlerc
    03/11/2005  16.19                 0 AUTOEXEC.BAT
    15/12/2005  09.00        11.966.065 AVG7QT.DAT
    03/11/2005  16.19                 0 CONFIG.SYS
    03/12/2005  18.41    <DIR>          Documents and Settings
    03/11/2005  16.26    <DIR>          mgafold
    27/11/2005  20.41    <DIR>          nmap
    03/11/2005  16.20    <DIR>          Program Files
    29/06/2006  10.19    <DIR>          Programmi
    02/06/2006  18.11    <DIR>          Python24
    24/07/2006  09.44    <DIR>          WINDOWS
                   3 File     11.966.065 byte
                   8 Directory   6.492.270.592 byte disponibili
    se non lo hai capito a lui serve in c++
    "Se proprio devono piratare, almeno piratino il nostro." (Bill Gates)

    "Non è possibile che 2 istituzioni statali mi mettano esami nello stesso giorno." (XWolverineX)

    http://xvincentx.netsons.org/programBlog

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 © 2020 vBulletin Solutions, Inc. All rights reserved.