Как исправить «Отказано в доступе» при попытке запустить внешний Perl-скрипт? - PullRequest
0 голосов
/ 04 октября 2010
system("logscr.ply ");

Я получаю следующую ошибку:

Can't exec "logscr.ply": Permission denied at eal.ply line 3

Почему я получаю ошибку и как ее исправить?

Ответы [ 2 ]

3 голосов
/ 04 октября 2010

Не зная каких-либо подробностей, может быть множество причин:

  • В вашем примере кода указано, что вы пытаетесь выполнить "logscr.ply".Пробел в конце может быть проанализирован как часть имени файла.Это должно привести к ошибке «файл не найден».
  • Биты защиты для вызываемого сценария могут не разрешать прямое выполнение.Попробуйте chmod u+x logscr.ply из командной строки.
  • Папка, содержащая logscr.ply, может быть недоступна для вас.Убедитесь, что у вас есть права на чтение и выполнение (попробуйте chmod u+r,u+x folder-name).
  • Вызываемый скрипт может не распознавать себя как скрипт Perl, попробуйте system("perl logscr.ply");.
  • Возможнофайл с тем же именем где-то ранее в вашем $ PATH.Для предотвращения этого используйте абсолютные пути в своем вызове (system("perl /some/path/logscr.ply");), не полагайтесь на переменную $ PATH.
0 голосов
/ 04 октября 2010

Что это за платформа / ОС?

Возможно, logscr.ply просто не имеет установленных разрешений на выполнение.В Linux / Unix, например, вы должны выполнить

chmod u+x logscr.ply

, а затем повторить попытку.

Примечание. Предполагается, что вы являетесь владельцем logscr.ply.Если нет, отрегулируйте соответственно.

...