2013-11-13 4 views
0

Когда вы запускаете исполняемый файл, который находится по сетевому пути относительно используемого вами компьютера, например \\networkmachine\folder\target.exe arg1 arg2, я знаю, что он выполняется локально, но кто-нибудь знает, если команда аргументы линии в конечном итоге проходят через сетевое соединение?Windows, выполняющая исполняемый файл с сетевого пути

+0

Ну, лучше всего было бы протестировать его с помощью простого exe, но я не понимаю, почему он будет заблокирован в любом случае ... –

+0

Аргументы командной строки передаются исполняемому экземпляру, запущенному локально. Просто как тот. –

+0

Я никогда не рассматривал это. Процесс создается локально, нет необходимости отправлять такие данные в удаленную файловую систему. –

ответ

0

Нет данных. Начните думать о том, как ваш двоичный файл, который находится в сетевом расположении, запускается на локальном компьютере. Когда вы выполняете команду, задача, ответственная за выполнение команды (в оболочке Linux, в Windows, я не знаю, что), принимает всю команду, которую вы ввели, поскольку ее аргумент анализирует ее, чтобы понять, что это инструкция для выполнения исполняемый и первый аргумент - это имя исполняемого файла, следующие аргументы - это аргументы, которые должны быть переданы ему. Затем он пытается запустить выполнение, в Linux он делает fork(), а затем exec(). В принципе, попробуйте загрузить исполняемый файл в память, а затем сохраните аргументы перед началом выполнения. Чтобы загрузить исполняемый файл в память, он должен прочитать исполняемый файл, и это время, когда он попытается прочитать исполняемый файл, и это именно то время, когда он будет выполнять сетевую операцию (в вашем случае) или операцию чтения диска, если она находится на диске. Если это в Linux и NFS-тип сетевого размещенного файла, сетевая операция снова опустится еще на один уровень, так как загрузчик выполнит обычный файл, и уровень NFS выполняет необходимую сетевую операцию, чтобы сделать данные доступными. Нет смысла в этой последовательности, когда вам нужно отправлять аргументы через сеть.

Итак, чтобы подвести итог, аргументы никогда не отправляются по сети.

Смежные вопросы