открытие a.out (что-то там не в порядке :-))

Модератор: Модераторы разделов

Аватара пользователя
m00tsi1
Сообщения: 7
ОС: Arch Linux

открытие a.out

Сообщение m00tsi1 »

Доброго времяни суток. Тут такая проблема, я написал первую прогу под Линукс (которая просто выводит строку hello!) на С++. Скомпилил ее и gcc создал мне hello.out. Пытаюсь открыть

Код: Выделить всё

./hello.out

Он мне

Код: Выделить всё

bash: ./hello.out: Permission denied

В чем проблема?
Спасибо сказали:
Аватара пользователя
Juliette
Сообщения: 5058
Статус: ROSA Lab
ОС: Ubuntu LTS, Mandriva 2011

Re: открытие a.out

Сообщение Juliette »

может, права поменять?
Спасибо сказали:
Аватара пользователя
m00tsi1
Сообщения: 7
ОС: Arch Linux

Re: открытие a.out

Сообщение m00tsi1 »

пробывал, тоже самое пишет
Спасибо сказали:
Аватара пользователя
Juliette
Сообщения: 5058
Статус: ROSA Lab
ОС: Ubuntu LTS, Mandriva 2011

Re: открытие a.out

Сообщение Juliette »

давайте я вас к программерам закину. Они любят резать правду-матку в глаза, но и информации выдать могут, вдруг вам повезёт? :girl_wink:
Спасибо сказали:
Аватара пользователя
loner
Сообщения: 149
ОС: Debian 5.0

Re: открытие a.out

Сообщение loner »

Может в ядре не включена поддержка a.out? Приложите hello.out, попробую у себя запустить
Спасибо сказали:
Аватара пользователя
elide
Бывший модератор
Сообщения: 2421
Статус: Übermensch
ОС: лялих

Re: открытие a.out

Сообщение elide »

а еще может быть раздел смонтированный с noexec (:
слава роботам!
Спасибо сказали:
Аватара пользователя
Eaglevil
Сообщения: 60
ОС: Arch Linux

Re: открытие a.out

Сообщение Eaglevil »

пробывал, тоже самое пишет
И всё-таки мне кажется что ему скорее всего не хватет прав на выполнение... Пробовал так? ;)

Код: Выделить всё

chmod +x ./hello.out
Здесь могла быть ваша реклама
Спасибо сказали:
Аватара пользователя
m00tsi1
Сообщения: 7
ОС: Arch Linux

Re: открытие a.out

Сообщение m00tsi1 »

да, Eaglevil прав. Все пошло. А почему все так? Как можно обойтись без постоянного chmod'а? Ведь с root'a тоже не пашет
Спасибо сказали:
Аватара пользователя
yros
Сообщения: 245

Re: открытие a.out

Сообщение yros »

Можно еще sh hello.out
У меня обычно a.out всегда создаётся с правами на выполнение.

Приношу свои извинения. Был неправ. sh только для скриптов, бинарники не выполняет.
Не знаю даже почему был уверен, наверное из за того что сам таким способом только скрипты и запускал, проверил - не работает. Не знаю что на меня нашло, обычно прежде чем что то писать проверяю.
myLinux 3.1 | 2.6.17.6
Спасибо сказали:
Аватара пользователя
Juliette
Сообщения: 5058
Статус: ROSA Lab
ОС: Ubuntu LTS, Mandriva 2011

Re: открытие a.out

Сообщение Juliette »

m00tsi1 писал(а):
03.03.2007 17:43
пробывал, тоже самое пишет

не хотелось бы вас добивать окончательно, но как именно вы пытались права поменять?
просто для человека, пытающегося писать на C++, как-то предполагается, что умеет хотя бы поменять права на исполняемый файл :girl_hospital:
Спасибо сказали:
Аватара пользователя
Uncle_Theodore
Сообщения: 3339
ОС: Slackware 12.2, ArchLinux 64

Re: открытие a.out

Сообщение Uncle_Theodore »

yros писал(а):
03.03.2007 18:37
Можно еще sh hello.out
У меня обычно a.out всегда создаётся с правами на выполнение.

Почему-то мне кажется, что bash не сможет выполнить бинарный файл... :cool:
А с какими правами доступа создаются файлы, регулируется командой
umask
от рута. Вот у меня например
#umask
0022
Таким образом, файлы создаются с правами 777 - 022 = 755, то есть rwxr-xr-x
А у вас?
Спасибо сказали:
Аватара пользователя
elide
Бывший модератор
Сообщения: 2421
Статус: Übermensch
ОС: лялих

Re: открытие a.out

Сообщение elide »

yros
Можно еще sh hello.out
интересно, что заставляет тебя писать не думая и не проверяя, но с полной уверенностью в собственной правоте?

m00tsi1
у меня, например, gcc сразу создаёт файл с нужными правами...
покажи вывод umask.

Uncle_Theodore
быстрый (:
слава роботам!
Спасибо сказали:
Аватара пользователя
m00tsi1
Сообщения: 7
ОС: Arch Linux

Re: открытие a.out

Сообщение m00tsi1 »

Код: Выделить всё

sh hello.out
hello.out: hello.out: cannot execute binary file

bash действительно бинарик не силит

Код: Выделить всё

# ls -l
-rwxr-xr-x  1 7969 Янв  1  2006 a.out*
-rwxrwxr-x  1 7969 Янв  1  2006 hello.out*

hello.out - проchmod'ный, а a.out - тот, что компилятор выдал. так что, мне всей группе нужно давать права переписывать ее, чтоб запустить? И почему из-под рута она не работала? (на дату не сморите, у меня мать сгорела, я поменял ее, но перенастроить дату не доходят руки)
Спасибо сказали:
Аватара пользователя
Uncle_Theodore
Сообщения: 3339
ОС: Slackware 12.2, ArchLinux 64

Re: открытие a.out

Сообщение Uncle_Theodore »

m00tsi1 писал(а):
03.03.2007 21:01

Код: Выделить всё

# ls -l
-rwxr-xr-x  1 7969 Янв  1  2006 a.out*
-rwxrwxr-x  1 7969 Янв  1  2006 hello.out*

hello.out - проchmod'ный, а a.out - тот, что компилятор выдал. так что, мне всей группе нужно давать права переписывать ее, чтоб запустить? И почему из-под рута она не работала?

Ничего не понял. Разница в правах между a.out и hello.out -- это право записи для группы. Оба файла исполняемые.
./a.out
должен исполняться.
Спасибо сказали:
Аватара пользователя
m00tsi1
Сообщения: 7
ОС: Arch Linux

Re: открытие a.out

Сообщение m00tsi1 »

Сам в .out'те. Без бубна не обойтись...
Спасибо сказали:
v04bvs
Сообщения: 636
ОС: Debian GNU/Linux

Re: открытие a.out

Сообщение v04bvs »

Ты где то что то путаешь.
Выполни следующие команды в домашней директории:
echo 'int main(void) { return 0; }' > test.c && gcc test.c -o test && chmod 755 test && ./test && echo 'all right'
Если выведется строка "all right" значит ты что то делал неправильно. Если где то будут ошибки - пиши их.
Спасибо сказали: