Язык C эквивалентен./folder?

Я работаю над проектом C в Pelles C и ищу файлы CSV в подкаталоге папки моего проекта. Прямо сейчас у меня есть абсолютный путь к файлам, вот так:

fopen("F:my/path/projectfolder/datafolder/data.csv", "r");

и это работает без проблем. Но я пытаюсь сделать мой код адаптируемым, когда я перемещаю папку моего проекта (скажем, с моего диска F:/ usb на мой C:/ harddrive). Я хотел бы знать, есть ли способ сделать это без необходимости изменять абсолютный путь к файлу каждый раз, когда я перемещаю папку своего проекта.

В основном мне интересно, как сказать "currentdirectory/datafolder", как в Linux ("./datafolder"). Что-то вроде следующих строк, которые я протестировал, но не работает:

fopen("./datafolder/data.csv","r");

или же

fopen("../datafolder/data.csv","r");

Мысли?

1 ответ

Решение

Это правильный синтаксис, за исключением того, что он основан на вашем текущем рабочем каталоге.

  • Чтобы прочитать текущий рабочий каталог, вы можете использовать: getcwd()
  • Чтобы изменить текущий рабочий каталог, вы можете использовать: chdir()
Другие вопросы по тегам