Как получить значение текущей директории в программе на языке 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. 2. dirname site:pubs.opengroup.org. |