Я пытаюсь разобрать строку в С чем-то вроде этого:Найти путь к родительской папке
/afolder/secondfolder/thirdone
сделать функцию и эта функция должна возвращать это:
/afolder/secondfolder
Я судимый многие вещи ...
int getParentFolder(const char *pPathNewLink, char* TargetDirectory) {
char *dirPath = strrchr(pPathNewLink, '/');
strncpy(TargetDirectory, pPathNewLink, dirPath - pPathNewLink);
return 1;
}
Я не могу использовать библиотеки операционных систем. Я должен сделать это именно так.
I судимого вызова функции вроде этого:
char * test;
getParentFolder("/var/lib",test);
printf("%s", test);
, но я получаю ошибку сегм ...
Ваш код работает для меня. Он делает то, что вы говорите. Покажите код, вызывающий эту функцию, он может назвать это неправильным. – JIghtuse
@JIghtuse Я могу выполнять следующие функции: \t \t char * targetFolder; getParentFolder (pDirName, targetFolder); – Lorac
Вы выделили память для TargetDirectory? – starrify