Prawidłowo realloc czy "statycznie" (ścieżki plików)

Prawidłowo realloc czy "statycznie" (ścieżki plików)
KA
KA
  • Rejestracja:prawie 12 lat
  • Ostatnio:prawie 5 lat
  • Lokalizacja:Warszawa
  • Postów:1683
0

sieeema! mam w jednym katalogu różne pliki, najczęściej nazwy mają po 4-6 liter, ale nie wykluczone, że może się trafić jakiś "dziki" plik. kolejno przekazuję ścieżkę każdego pliku z katalogu -> do funkcji. Obecnie sprawdzam długość ścieżki do katalogu + długość nazwy pliku i jeżeli trzeba wywołuje realloc. Jednakże przed chwilą sprawdziłam i widzę, że d_name (nazwa pliku) w Linuxie to max 255bajtów. I teraz pytanie; czy lepiej zostawić obecne rozwiązanie czy np. mallokować raz a dobrze (przed pętlą) na strlen(dir_path)+256 (w efekcie zrezygonować z ifa i realloc w pętli)?

Kopiuj
        char *filepath=NULL;
		unsigned len_filepath=0;
		while((entry = readdir(dir)) && !found) {
			if(entry->d_name[0]=='.')
				continue;
			
			if(len_filepath < strlen(dir_path)+strlen(entry->d_name)+10) {
				len_filepath = strlen(dir_path)+strlen(entry->d_name)+10;
				filepath = realloc(filepath,len_filepath);
			}

			sprintf(filepath, "%s/%s", dir_path, entry->d_name);
			if(this_is_it(filepath,device->type)) {
				found=1;
				device->path=filepath;
			}
		}
		closedir(dir);
		if(!found)
			free(filepath);
		return found;
}

PROGRAMY NA ZAMÓWIENIE, ZALICZENIA STUDENCKIE, KONFIGURACJA SERWERÓW, SYSTEMÓW I BAZ DANYCH, STRONY INTERNETOWE, POMOC W PROGRAMOWANIU, POPRAWIENIE I OPTYMALIZACJA APLIKACJI
JAVA, C++, LINUX, WWW, SQL, PYTHON
POSIADAM KOMERCYJNE DOŚWIADCZENIE
TANIO, SZYBKO I PORZĄDNIE
Z KOMENTARZAMI OBJAŚNIAJĄCYMI KOD
PISZ NA PRYWATNĄ WIADOMOŚĆ
CENY JUŻ OD 49,99ZŁ ZA PROGRAM
ZAJMIJ SIĘ TYM CO CIĘ NAPRAWDĘ INTERESUJE!
edytowany 2x, ostatnio: karolinaa
Azarien
  • Rejestracja:ponad 21 lat
  • Ostatnio:około 18 godzin
0

char filepath[256] i styknie.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.