Получить наименование текущей рабочей директории
#include <unistd.h>char * getcwd( char *buffer,size_t size );
NULL
, или указатель на область памяти где функция может хранить наименование директории.libc
Функция getcwd() возвращает наименование текущей рабочей директории. buffer указывает на область памяти размером не менее size байт, куда будет помещено NUL-терминированное
имя текущей рабочей директории.
Максимальный размер буфера равен PATH_MAX
+ 1
байт. Подробнее в <limits.h>
.
Функция выделяет память для наименования директории; пользовательское приложение отвечает за освобождение этой области памяти, когда она будет не нужна. |
Адрес строки, содержащей наименование текущей рабочей директории.
Если возникла ошибка функция возвращает NULL
, код ошибки записывается в errno.
0
. #include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <limits.h>int main( void ){char *cwd;char buff[PATH_MAX + 1];cwd = getcwd( buff, PATH_MAX + 1 );if ( cwd != NULL ){printf( "My working directory is %s.\n", cwd );}return (EXIT_SUCCESS);}
Код генерирует следующий вывод:
$ ./a.out My working directory is /home/bill.
POSIX 1003.1
Существует только одна текущая рабочая директория для процесса. В многопоточном приложении, любой поток вызывающий chdir() будет изменять текущую рабочую директорию для всех потоков в процессе.
chdir(), errno, fchdir(), mkdir(), rmdir()
Предыдущий раздел: Описание API системной библиотеки