getcwd işlevi sizin tarafınızdan sağlanan tampon karakter dizisine o anki çalışma dizinini ifade eden mutlak dosya ismini kaydederek döner. boyut argümanı ile sisteme tampon için ayrılan boyut bildirilir.
   
Bu işlevin GNU kütüphanesindeki sürümü 
tampon argümanı olarak bir boş gösterici belirtebilmenizi mümkün kılar. Bu durumda 
getcwd işlevi 
malloc ile tamponu kendisi ayırır (bkz. 
Özgür Bellek Ayırma).  Eğer 
boyut sıfırdan büyükse, tampon bu kadar daha büyük olur, aksi takdirde tampon sonucu tutmaya yetecek büyüklükte olur.
   
İşlevin normal dönüş değeri tampon'dur. Başarısızlık halinde boş gösterici döner. Aşağıdaki errno hata durumları bu işlev için tanımlanmıştır:
   
- EINVAL
- 
boyut argümanı sıfır ve tampon boş gösterici değil.
       
- ERANGE
- 
boyut argümanı ile belirtilen uzunluk çalışma dizini isminden daha kısa. Daha büyük dizi ayırarak yeniden deneyin.
       
- EACCES
- 
Dosya isminin bir elemanını aramak ya da okumak için izin verilmedi.
       
GNU'nun getcwd (NULL, 0) davranışını sadece getcwd işlevinin standart davranışını kullanarak gerçekleştirebilirdiniz:
   
char *
gnu_getcwd ()
{
  size_t size = 100;
  while (1)
    {
      char *buffer = (char *) xmalloc (size);
      if (getcwd (buffer, size) == buffer)
        return buffer;
      free (buffer);
      if (errno != ERANGE)
        return 0;
      size *= 2;
    }
}
Bir kütüphane işlevi olmayan ama çoğu GNU yazılımında kullanılan bir özelleştirilmiş isim olan 
xmalloc hakkında daha fazla bilgi için 
malloc Örnekleri bölümüne bakınız.