Доброго времяни суток. Тут такая проблема, я написал первую прогу под Линукс (которая просто выводит строку hello!) на С++. Скомпилил ее и gcc создал мне hello.out. Пытаюсь открыть
Можно еще sh hello.out
У меня обычно a.out всегда создаётся с правами на выполнение.
Приношу свои извинения. Был неправ. sh только для скриптов, бинарники не выполняет.
Не знаю даже почему был уверен, наверное из за того что сам таким способом только скрипты и запускал, проверил - не работает. Не знаю что на меня нашло, обычно прежде чем что то писать проверяю.
не хотелось бы вас добивать окончательно, но как именно вы пытались права поменять?
просто для человека, пытающегося писать на C++, как-то предполагается, что умеет хотя бы поменять права на исполняемый файл
Можно еще sh hello.out
У меня обычно a.out всегда создаётся с правами на выполнение.
Почему-то мне кажется, что bash не сможет выполнить бинарный файл...
А с какими правами доступа создаются файлы, регулируется командой
umask
от рута. Вот у меня например
#umask
0022
Таким образом, файлы создаются с правами 777 - 022 = 755, то есть rwxr-xr-x
А у вас?
hello.out - проchmod'ный, а a.out - тот, что компилятор выдал. так что, мне всей группе нужно давать права переписывать ее, чтоб запустить? И почему из-под рута она не работала? (на дату не сморите, у меня мать сгорела, я поменял ее, но перенастроить дату не доходят руки)
hello.out - проchmod'ный, а a.out - тот, что компилятор выдал. так что, мне всей группе нужно давать права переписывать ее, чтоб запустить? И почему из-под рута она не работала?
Ничего не понял. Разница в правах между a.out и hello.out -- это право записи для группы. Оба файла исполняемые.
./a.out
должен исполняться.
Ты где то что то путаешь.
Выполни следующие команды в домашней директории:
echo 'int main(void) { return 0; }' > test.c && gcc test.c -o test && chmod 755 test && ./test && echo 'all right'
Если выведется строка "all right" значит ты что то делал неправильно. Если где то будут ошибки - пиши их.