Pagina 2 di 2

Re: [C] creare un nuovo file con percorso diverso

Inviato: sabato 13 giugno 2015, 11:36
da gila75
Non so poi di performance quanto possa essere piu veloce la strcat rispetto alla snprintf
Dicevo così perchè snprintf deve analizzare tutte le specifiche di conversione rispetto a strcat o meglio strncat.
Un po' come printf e puts. Molto più veloce la seconda se si deve solo fare una stampa.
Ma sono solo mie riflessioni da neofita. Personalmente snprintf l'ho usata poco. Anche nel programma per la scansione
delle directory avevo usato strncat.

Re: [C] creare un nuovo file con percorso diverso

Inviato: sabato 13 giugno 2015, 11:43
da vbextreme
dipende anche da quante stringhe vuoi concatenare, ad esmpio metti il caso di dover salvare un file in ~/dirvariabile/filename con la strcat avrai:

Codice: Seleziona tutto

strcpy(d,pht_home());
strcat(d,"/");
strcat(d,dirvariabile);
strcat(d,"/");
strcat(d,filename);
con la sprintf

Codice: Seleziona tutto

sprintf(d,"%s/%s/%s",pht_homedir(),dirvariabile,filename);
il codice parla chiaro...
per quanto riguarda le performance non saprei, la strcat deve sempre calcolarsi la lunghezza della stringa e copiarsi dentro il nuovo vettore mentre la sprintf deve solo evalutare il format...
prova...

Re: [C] creare un nuovo file con percorso diverso

Inviato: sabato 13 giugno 2015, 11:49
da gila75
Certo vb, vero anche quello.
Devo abituarmi all'uso. Chissà come mai alcune funzioni tendo a non utilzzarle, antipatia a pelle :D