Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Ansi C scorrere una directory senza usare standard POSIX
Forum - C/C++ - Ansi C scorrere una directory senza usare standard POSIX

Avatar
Sybil_Vane (Normal User)
Newbie


Messaggi: 4
Iscritto: 28/06/2012

Segnala al moderatore
Postato alle 11:27
Giovedì, 28/06/2012
ciao a tutti,

volevo chiedervi un piccolo aiuto. Dovrei scorrere una directory (ne conosco già il path) e relative sottodirectory se esistono, tutto sarebbe molto semplice se potessi usare lo standard POSIX, ma causa direttive dall'alto non mi è possibile...

La mia domanda è questa: che voi sappiate nello standard Ansi c'è un modo per accorgersi se un determinato FILE è una directory?

Vi ringrazio ;)

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5475
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 13:58
Giovedì, 28/06/2012
Parli di Windows o Linux?


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
PM Quote
Avatar
Sybil_Vane (Normal User)
Newbie


Messaggi: 4
Iscritto: 28/06/2012

Segnala al moderatore
Postato alle 13:59
Giovedì, 28/06/2012
scusa hai ragione non l'ho scritto..
programmo su linux ma il codice dovrebbe essere portabile..
grazie :)

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5475
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 14:12
Giovedì, 28/06/2012
Il C non ha specifiche funzionalità rispetto al file system (di cui non conosce nulla).

E' il sistema operativo che fornisce le primitive per l'accesso ai file.

Con Linux puoi usare la funzione

stat

e testare il campo st_mode con una maschera di valore costante S_IFDIR


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
PM Quote
Avatar
Sybil_Vane (Normal User)
Newbie


Messaggi: 4
Iscritto: 28/06/2012

Segnala al moderatore
Postato alle 14:22
Giovedì, 28/06/2012
si ti ringrazio :) ho già implementato il tutto per linux :)

ma ci è stato richiesto di fare del codice portabile e ho visto che, proprio come hai detto, lo standard ansi è indipendente dal file system quindi non saprei proprio come fare un codice portabile che cicli sulle directory e sottodirectory :(


PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5475
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 14:27
Giovedì, 28/06/2012
Il codice *sorgente* sarà portabile nel senso che dovrai ricompilarlo nell'ambiente di destinazione.

Basta scrivere codice per le due piattaforme impostando correttamente i vari blocchi condizionali, ad esempio

Codice sorgente - presumibilmente C/C++

  1. #ifdef __unix__
  2. # include <unistd.h>
  3. ...
  4. #elif defined _WIN32
  5. # include <windows.h>
  6. ...
  7. #endif




Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
PM Quote
Avatar
Sybil_Vane (Normal User)
Newbie


Messaggi: 4
Iscritto: 28/06/2012

Segnala al moderatore
Postato alle 14:32
Giovedì, 28/06/2012
ottimo! quindi per la parte windows mi basterà implementare l'equivalente di readdir ecc.. che se non sbaglio dovrebbe trattarsi delle funzioni FindFirstFile e FindNextFile giusto?

ti ringrazio tantissimo! :)

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5475
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 15:32
Giovedì, 28/06/2012
Giusto ...

Ciao


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
PM Quote