Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Как устроен системный вызов open() в юниксе(линуксе) или винде? На чем он написан? Где это глянуть можно?

Артур Флоренский Мастер (2091), на голосовании 2 года назад
Вот есть в Си функция fopen(), она, как я понял является, оберткой над системным вызовом юникса open(). А эти системные вызовы, на чем написаны? На ассемблере?
Голосование за лучший ответ
А Б Б А Искусственный Интеллект (103637) 2 года назад
Си - это Си, а ассемблер - это ассемблер. Не надо смешивать. Они каждый по-своему напрямую транслируют текст программы в двоичный объектный код. Си не работает через ассемблер!
Артур ФлоренскийМастер (2091) 2 года назад
понятно. а реализация ф-и open() как выглядит можете подсказать? где ее глянуть?
А Б Б А Искусственный Интеллект (103637) Артур Флоренский, в мануалах и пособиях по языку Си. Полагаю, это некая стандартная процедура открытия файла, она там обязательно должна присутствовать. Что же касается именно винды, то ее код - закрытый, и это можно только нелегально поиметь у разрабов винды. В отношении линуксоидов - надо пошариться на их развалах и форумах, у них открытый код
᠌ ᠌ ᠌᠌ ᠌ ᠌ ᠌ ᠌ ᠌ Просветленный (25739) 2 года назад
 #include  
#include
#include

int open(const char *pathname, int flags);
int open(const char *pathname, int flags, mode_t mode);
int creat(const char *pathname, mode_t mode);
Похожие вопросы