#c #linux #path #strchr
Вопрос:
Как мы можем использовать функцию strchr
для поиска абсолютного пути в Linux, например:
Input: /home/test/sample
Output: /home/test
Я пытаюсь написать что-то вроде этого:
int main() {
char* string = "/home/test/sample";
char* pos;
pos = strchr(string, '/');
printf("%sn", pos);
return 0;
}
Но это не работает, я получил тот же вывод, что и на входе:
Input: /home/test/sample
Output: /home/test/sample
Комментарии:
1. Цитата со страницы руководства: Функция strchr() возвращает указатель на первое вхождение символа c в строке s. Это первое вхождение является самым левым, то есть первым символом.
2. Вы используете неправильную терминологию. Технически то, что вы ищете, — это префикс имени пути.
3. Из примера кода видно, что на самом деле вам не нужен абсолютный путь. Если вам действительно нужен абсолютный путь, попробуйте
realpath