Иногда, при разделении на подклассы, Вы хотите ограничить условия, требуемые создать экземпляр класса.
Позволяют мне дать Вам пример. Если бы классы действительно наследовали своих конструкторов суперкласса, все классы имели бы конструктора без параметров от Object
. Очевидно, это не корректно.
Следующий код AppleScript является частичным решением вашей проблемы. Учитывая pid UNIX в переменной thePID
, он сначала получает имя процесса. Затем он отправляет команду do shell script
процессу приложения, в результате чего создается дочерний процесс оболочки. Дочерний процесс наследует текущий каталог, который затем можно определить, запустив команду pwd
.
tell application "System Events"
set theName to name of first process whose unix id is thePID
end tell
tell application theName
do shell script "/bin/pwd"
end tell
Сценарий не работает для процессов, которые не связаны со структурой AppleEvent (например, чистые процессы POSIX).
В версии 10.5 и новее:
lsof -a -p $ PID -d cwd -Fn
(префикс с sudo
, если процесс принадлежит пользователю root.)