PDA

Visualizza la versione completa : [C] Find in C


AB03
26-05-2008, 14:25
Ciao a tutti,
Devo crare il C un prog, che effettui le operazioni del comando Find della bash linux.

Per quanto riguarda il find sono riuscito a stampare a video il contenuto della cartella e delle eventuali sottocartelle, fino a qui tutto OK.
Ora devo spostare l'outputsu un file e qui credo do non trovare problemi.
La parte "tosta" arriva dopo.
Devo trovare se è presente un file con un determinato nome, se è prensente uno con determinati permessi, uno di un determinato tipo, e per data di modifica.

ESEMPIO

L'utente vuole trovare il file: pippo.txt

nella cartella cartella sono contenuti i seguenti file:

ciao.txt
hello.c
pippo.txt
./ prova
io.txt
prog.doc
pippo2.txt

quindi in output mi deve visualizzate:

pippo.txt
./ prova
pippo2.txt

inoltre deve fare una cosa simile se si cercano i file con data di modifica uguale, o se hanno permessi uguali a quelli specificati dall'utente.

La cosa che mi crea più problemi e quella però di trovare i file in base al tipo, cioè se l'utente mi dice che vuole cercare la directory pluto come posso fare?

so che in bash quando faccio ls la prima lettera mi indica il tipo di file, ma in C come faccio?

Grazie fin da ora a tutti quelli che mi sapranno aiutare.

Ciao.


AIUTO

MItaly
26-05-2008, 22:37
Originariamente inviato da AB03
L'utente vuole trovare il file: pippo.txt

nella cartella cartella sono contenuti i seguenti file:


ciao.txt
hello.c
pippo.txt
./ prova
io.txt
prog.doc
pippo2.txt

quindi in output mi deve visualizzate:


pippo.txt
./ prova
pippo2.txt


Questo non è difficile, basta esaminare i nomi dei file prima di stamparli (tra parentesi, pippo2.txt non dovrebbe essere visualizzato se l'utente chiede pippo.txt... semmai se l'utente cerca semplicemente pippo).


inoltre deve fare una cosa simile se si cercano i file con data di modifica uguale, o se hanno permessi uguali a quelli specificati dall'utente.

La cosa che mi crea più problemi e quella però di trovare i file in base al tipo, cioè se l'utente mi dice che vuole cercare la directory pluto come posso fare?

so che in bash quando faccio ls la prima lettera mi indica il tipo di file, ma in C come faccio?

Puoi ottenere tutte queste informazioni sui file con la funzione stat (http://linux.die.net/man/2/stat); per il resto poi ti basta effettuare dei semplici confronti.

Loading