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