разрешение отрицало запускать мою собственную программу (человечность)

Для подобных случаев есть также условный оператор:

output = (val % 2 == 1) ? "Number is odd" : "Number is even";

Если вы определенно собираетесь использовать «если», я бы использовал версию 2 или версию 4, в зависимости от остальных твой бодрящий стиль. (На работе я использую 4; для личных проектов я использую 2.) Главное, что есть даже фигурные скобки вокруг отдельных утверждений.

Кстати, для проверки четности использовать немного быстрее:

if ((val & 1) == 1)
8
задан 2 revs 17 June 2009 в 11:10
поделиться

9 ответов

Проверить точку монтирования, чтобы узнать, смонтирована ли она как noexec работает "mount"

5
ответ дан 5 December 2019 в 05:26
поделиться

Как вы его компилируете? Можете выложить make-файл? Если вы запустите

chmod +x myPorgram
./myProgram

, что-то изменится?

7
ответ дан 5 December 2019 в 05:26
поделиться

Помимо вышеупомянутого файла chmod + x, другой проблемой может быть отсутствие библиотеки. Чтобы проверить необходимые библиотеки, используйте ldd:

$ ldd /bin/sh
    linux-vdso.so.1 =>  (0x00007fffb43fe000)
    libc.so.6 => /lib/libc.so.6 (0x00007fc4abe11000)
    /lib64/ld-linux-x86-64.so.2 (0x00007fc4ac183000)

Если в одной из этих строк отображается отсутствующая библиотека, вы узнаете, что нужно установить, прежде чем вы сможете запустить свою программу.

Другой вариант - если ваша программа является сценарием (оболочка, perl, python или другая текстовая программа). Первая строка выглядит так:

#!/usr/bin/perl

Если этот файл не может быть найден, вы получите сообщение об ошибке отказа в разрешении.

1
ответ дан 5 December 2019 в 05:26
поделиться

Пара вопросов:

  1. Правильно ли установлены разрешения для файла?
  2. Правильно ли указан путь к любому интерпретатору?
1
ответ дан 5 December 2019 в 05:26
поделиться

Попробуйте выполнить команду с помощью strace , чтобы отследить успешные системные вызовы, которые она выполняет, и места ее остановки.

Вот как вы можете запустить ее,

strace ./blabla

Сделайте вы получаете ошибку "доступ запрещен" или что-то вроде "ошибка формата exec"? С chmod + rx для файла вы не должны нажимать «доступ запрещен».

0
ответ дан 5 December 2019 в 05:26
поделиться

Вы также должны убедиться, что ваше имя пользователя находится в группе видео. Проверьте / etc / group и убедитесь, что ваше имя пользователя отображается в строке «видео».

0
ответ дан 5 December 2019 в 05:26
поделиться

Вы также получите эту проблему при попытке выполнить 32-битные приложения на 64-битной системе. Выполните:

a. file (executable name)
b. uname -a

и проверьте, что оба они либо "i386", либо "amd64".

Если они не одинаковы, посмотрите эту статью:

1
ответ дан 5 December 2019 в 05:26
поделиться

У меня была та же проблема, и оказалось, что мой раздел был смонтирован как noexec cat / etc / mtab

Когда я настраивал параметры в / etc / fstab Я написал exec, user, но оказалось, что опция «user» по умолчанию устанавливает «noexec». Когда я изменил порядок этих двух на user, exec все вернулось в норму!

Надеюсь, это поможет.

14
ответ дан 5 December 2019 в 05:26
поделиться

Я использую CodeBlocks на Ubuntu и сталкивался с этой проблемой МНОГО раз. То, что сказал KermiDT, является точным решением (если бы у меня было достаточно очков репутации, я бы проголосовал за это)
. Опция "user" по умолчанию устанавливает "noexec".
поэтому в /etc/fstab просто добавьте ,exec после user. Т.е. мой выглядит так:
/dev/sda6 /media/DATA vfat uid=kenny,gid=kenny,users,user,exec 0 0
Правда, интервал немного не тот... но вы поняли идею.

2
ответ дан 5 December 2019 в 05:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: