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++ - 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: 6403
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 ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
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: 6403
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 ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
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: 6403
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 ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
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: 6403
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 ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote