Системное программирование в UNIX средствами Free Pascal

Функция getcwd возвращает указатель на


uses stdio;
function getcwd(name:pchar; size:longint):pchar;
uses linux;
Function TellDir(p:pdir):longint;
Функция getcwd возвращает указатель на имя текущего каталога. Следует помнить, что значение второго аргумента size должно быть больше длины имени возвращаемого пути не менее чем на единицу. В случае успеха имя текущего каталога копируется в массив, на который указывает переменная name. Если значений size равно нулю или меньше значения, необходимого для возвращения строки имени текущего каталога, то вызов завершится неудачей и вернет нулевой указатель. В некоторых реализациях, если переменная name содержит нулевой указатель, то функция getcwd сама запросит size байтов оперативной памяти; тем не менее, так как эта семантика зависит от системы, не рекомендуется вызывать функцию getcwd с нулевым указателем.
Функция TellDir помещает текущий каталог по указателю p, возвращая 0 в случае успешного завершения и -1 – при ошибке.
Альтернативой getcwd является определенная в модуле sysutils функция GetCurrentDir.


uses sysutils;
Function GetCurrentDir:String;
Эта короткая программа имитирует команду pwd:
(* Программа my_pwd - вывод рабочего каталога *)
uses sysutils;
procedure my_pwd;
begin
  writeln(GetCurrentDir);
end;
begin
  my_pwd;
end.

Содержание раздела