Как получить значение текущей директории в программе на языке C |
Добавил(а) microsin |
Иногда в программе нужно узнать имя текущего каталога, из которого была запущена программа. [Имя текущего каталога] Имя каталога, из которого была запущена программа, можно узнать с помощью функции getcwd [1], например: #include < unistd.h>
#include < stdio.h>
#include < limits.h>
int main() { char cwd[PATH_MAX]; if (getcwd(cwd, sizeof(cwd)) != NULL) { printf("Current working dir: %s\n", cwd); } else { perror("getcwd() error"); return 1; } return 0; } [Имя каталога, где находится исполняемый файл] Другая задача - узнать имя каталога, где находится запущенная программа. Это можно сделать с помощью функции парсинга пути dirname [2], например: #include < libgen.h>
... char running_dir[PATH_MAX]; strcpy(running_dir, dirname(argv[0])); if ((fp = fopen(strcat(running_dir, "/eflash_loader_40m.bin"), "rb")) == NULL) { printf ("Cannot open file '%s'\n", cwd); return -1; } ... [Ссылки] 1. How to get the current directory in a C program? site:stackoverflow.com. |