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

    [C] Nome della Dir correntemente in uso con getcwd ()

    Ho bisogno di prendere come da titolo il nome della dir in cui è il file, quindi il nome della dir corrente.

    Cercando sul web ho trovato http://tinyurl.com/2fa5u5h che spiega 3 funzioni.

    Ebbene mettendomi al lavoro sono riuscito a ricavare che :
    Codice:

    Codice PHP:
    char*getcwd(char *bufsize_t size); 
    funziona ma non so come utilizzare questa funzione quindi averne l'output e quel che restituisce.

    ho provato anche a mettere in una variabile cosi:
    Codice:
    Codice PHP:
    char myvar getcwd(char *bufsize_t size); 
    ma non và.

    Qualcuno saprebbe dirmi come utilizzare questa funzione ed eventualmente metterla in una variabile?

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Devi passare un buffer di caratteri e la sua dimensione alla funzione ... da quello che hai scritto sembra che tu non conosca completamente il C ...

    P.S. Lavori con Linux?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Originariamente inviato da oregon
    Devi passare un buffer di caratteri e la sua dimensione alla funzione ... da quello che hai scritto sembra che tu non conosca completamente il C ...

    P.S. Lavori con Linux?
    Purtroppo non posso darti torto.

    Buffer di caratteri? ovvero?
    E poi la dimensione di cosa? Itendi della dir o del buffer? e se del buffer come la ricavo?

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    La devi indicare tu ... puoi usare una costante già dichiarata, ad esempio, PATH_MAX

    codice:
    char buffer[PATH_MAX];
    getcwd(buffer, PATH_MAX);
    per avere quello che cerchi in buffer

    Ma se non hai idea di come scrivere codice C, ti fermerai al prossimo problema ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Originariamente inviato da oregon
    La devi indicare tu ... puoi usare una costante già dichiarata, ad esempio, PATH_MAX

    codice:
    char buffer[PATH_MAX];
    getcwd(buffer, PATH_MAX);
    per avere quello che cerchi in buffer

    Ma se non hai idea di come scrivere codice C, ti fermerai al prossimo problema ...
    Ciao alla fine ho risolto questo problema ma come hai detto mi sono giù bloccato.

    Per non aprire altri topic (i miei problemi sono tanti, e non credo sia una buona idea intasare la sezione C) preferisco continuare qui.

    In realtà sto costruendo un piccolo programmino che apre la directory in cui è eseguito e ne apre tutte le sottostanti (all'infinito quindi per ogni sub dir) e infine partendo dall'ultima ne cancella tutto ciò che è dentro fino alla dir principale di partenza!.

    Quindi chi si rompe di aiutarmi in quest'impresa.. beh.. le rotture sono consetite

    Ovviamente io voglio solo dritte e non la pappa pronta, anche perchè non può giovarmi la pappa pronta!.

    Ora ho scritto una parte del codice che andrà ultimandosi pian piano.

    Ci sono 2 errori penso:

    come primo partendo dalla linea 41 a 47 non riesco a mettere in un array i risultati di dir_object->d_name (analogamente da 55 a 61)

    come secondo errore non riesco a mettere gli ipotetici array all_dir e all_files in un solo array ed il debug dà questi errori:

    Alla linea 66: error: size of array `all' has non-integral type `char*[100]'
    Alla linea 68: error: invalid conversion from `char (*)[1]' to `char'

    Il codice : http://nopaste.info/a64c6f7e8f.html

    Se avete soluzioni vi ringrazio

  6. #6
    Scusa ma programmi con Linux o con Windows?
    Perchè dal tuo codice includi l'header unistd.h e alla fine del main chiami system("PAUSE");
    Magari poi sono io che non so che in win è possibile questo dettaglio...

    In piu non puoi fare delle cose cosi:
    codice:
        
    char *all_files[100];     
    char *all_dir[100];
    e poi dichiarare un array in questa maniera:
    codice:
    char all[all_dir][all_files] ;
    E poi le variabili si dichiarano all'inizio della funzione, non alla fine..

  7. #7
    programmo su windows.. cmq hai soluzioni a i miei problemi?

  8. #8

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Progammi con Windows?

    E perchè mai utilizzi funzioni di Unix/Linux ?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  10. #10
    scusa ma anche se metto
    codice:
     
        char all[100][100];
        all = [all_files][all_dir];
    Il debug da errore a all = [all_files][all_dir]; quindi non so come fare..

    Per di più i cicli for di K sono fatti bene? a me non sembrerebbe...

    E c'è ancora il problema del return non risolto

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