Наташа Чернова
Наташа Чернова

Linux. Где находиться данные в файле, является ли он исполняемый или нет?

Здравствуйте, на сколько я понял в Linux, в каждом файле есть выделенная память на 16 бит, где первые 4 бита - кодируется запись о типе файла, 3 бита - какие-то свойства исполняемости файла, и последние 9 бит - права доступа. Делятся по три группы, с битами отвечающими за чтение, запись, или исполнение, т. е. rwx rwx r-x.
Мне нужно в своей программе узнать является ли он исполняемый или нет. Как я понимаю есть два способа:
1) Системный вызов stat, и прочитать в структуре права доступа.
2) Самому найти эти 16 бит, но где они будут находиться в файле? И можно ли их будет прочитать системными вызовами open и lseek?

СС
Сергей Сергеевич

Они не в файле - они в описании файла в файловой таблице.
Так что или кури маны по своей файловой системе - или stat.

ЕБ
Евгений Бердюгин

Ну а чем вас не устраивает stat?

Алла
Алла

не знаю подойдет ли, но тупой вариант в лоб

ls -ld file_name | cut -c 4,7,10

выдаст только биты исполнения

а вообще вопрос не совсем корректен узнать исполняемый ли это файл можно с помощью
file file_name
строчка "executable" подскажет

а то что ты проверяешь просто права на исполнение файла

Похожие вопросы
Как трансформировать данный файл?
svn не является внутренней или внешней командой исполняемой программой или пакетным файлом
Как присвоить файлу атрибут «исполняемый» в ОС linux росинка??
Дан файл f компоненты которого является символы записать файл j компонентов файла f в обратном порядке. через паскаль
где находится файлы С/С++ ?
Системные вызов в linux. Размер файла.
Использование системные вызов в linux. Размер файла.
Как разместить исполняемый файл на своём сайте?
Можно ли создавать исполняемые файл с помощью umask в Linux? Если да, то каким образом?
Shutdown не является внутренней или внешней командной, исполняемой программой или пакетным файлом!!!