У меня есть этот код:Append строка перед strdup C
if(S_ISDIR(fileStat.st_mode)){
(*ls)[count++] = strdup(ep->d_name);
ep = readdir(dp);
} else{
(*ls)[count++] = strdup(ep->d_name);
ep = readdir(dp);
}
Как я могу добавить строку «DIR», чтобы получить что-то вроде:
if(S_ISDIR(fileStat.st_mode)){
(*ls)[count++] = "DIR "strdup(ep->d_name);
ep = readdir(dp);
Так что, когда я буду печатать у меня есть это:
file1 file2
DIR: file3
ЕСС
, где ls
is char ***ls
Заранее благодарен!
'sprintf' очень опасно. Предпочитаете 'snprintf'. –
@larsmans ОК, теперь это исправлено. – dasblinkenlight
1) почему мне нужно 5 символов? 2) правильно делать 'free ((* ls) [count]);'? – polslinux