Я хочу прочитать все файлы в данном каталоге. Я использую систему Linux и использую dirent.h. Мне интересно, есть ли более изящный способ получить полный локальный путь к каждому файлу, чем добавление его вручную?
Абсолютные пути всегда начинаются с root: / или что-то вроде домашнего каталога пользователя: ~(это просто ярлык, содержащий корень)
Относительные пути всегда относительно местоположения, например путь относительно рабочего каталога. Когда вы запускаете свою программу из командной строки, независимо от того, в какой папке на вашем терминале есть «cd 'd'», это ваш рабочий каталог.
Если это не так, похоже, что вы ищете относительный путь файла к вашему рабочему каталогу. Это правильно?
Если это так - вы делаете это правильно … но если вам нужен более элегантный подход, вы можете «построить» относительный путь всего в одной строке кода, используя sprintf вместо strcpy и, strcat т.е.
sprintf замечательный, и делает эти типы строковых манипуляций более терпимыми, особенно когда у вас есть несколько компонентов и переменных, которые нужно включить.