Как получить относительный путь DIR? - PullRequest
0 голосов
/ 30 апреля 2020

Я реализую встроенный pwd в мини-оболочке.

Как получить относительный путь без использования переменной среды "PWD"

(getenv("PWD"))

Пример:

CWD = /tmp

getcwd("/tmp", buff, size)

возвращает абсолютное местоположение => /private/tmp.

Как получить "/tmp" для печати в?

1 Ответ

0 голосов
/ 30 апреля 2020

Вы не можете сделать это.

При инициализации оболочки она сохраняет текущий рабочий каталог в локальной переменной оболочки. Оболочка получает cwd от getcwd () (если переменная окружения "PWD" не установлена) и getenv ("PWD") (если установлено "PWD") во время инициализации.

Пример: Вы находитесь в / tmp (PWD = / tmp) (tmp = symboli c link)

CASE A

zsh

pwd

Результат: / tmp

CASE B

env -i zsh

pwd

Результат: / private / tmp

...