В чем разница между командой оболочки cd
и функцией Perl chdir
? Не могли бы вы объяснить на примере?
Разница между cd и функцией chdir
Ответы (2)
Команда cd
изменяет текущий каталог процесса оболочки; функция Perl chdir
изменяет текущий каталог процесса Perl. Это одно и то же, только пишется по-разному.
person
Alan Curry
schedule
21.08.2012
Обратите внимание, что обе оболочки
cd
и Perl chdir
реализованы в терминах системного вызова chdir(2)
. Современные команды cd
оболочки делают вид, что символьных ссылок нет, но когда приходит время сменить каталог, они по-прежнему используют chdir(2)
.
- person Jonathan Leffler; 21.08.2012
@JonathanLeffler Я не использую perl с заглавной буквы, потому что он основан на ложном утверждении, что язык Perl существует независимо от программы Perl. На самом деле язык - это то, что принимает (единственная) реализация, даже если поведение противоречит документации. Как говорится в perlfaq: Q: Есть ли версия Perl, сертифицированная по ISO или ANSI? A: Конечно, нет. Ларри ожидает, что он будет сертифицирован раньше Perl. Мне неловко видеть, что что-то написано так, как я бы точно не написал, с моим именем на нем.
- person Alan Curry; 21.08.2012
@AlanCurry: Я не согласен с вашим выбором стиля, но это ваш пост, и вы можете делать с ним все, что хотите.
- person Jonathan Leffler; 21.08.2012
Выбор действительно Perl и
perl
. perl не имеет смысла.
- person ikegami; 22.08.2012
По сути, они оба делают одно и то же, но chdir
- это системный вызов POSIX, а cd
- обычная функция, используемая в программе, которая в данном случае является оболочкой.
На практике chdir
вызывается cd
для изменения каталога, поскольку программа не имеет прав ядра, чтобы сделать это самостоятельно.
person
Itamar Katz
schedule
01.07.2016