@k3rnel

Где исходный код system call open()?

Доброй ночи. Я хочу посмотреть реализацию системного вызова open(), который делает fopen() из glibc. В fs/open.c нет функции open(). Есть только что-то похожее на неё, но там все в макросах, а макросы сами определены через макросы, в итоге 5 этажные макросы и ничего не понятно. Там ли я ищю? Как понимать код ядра? Я бы не сказал, что это the pure code.
  • Вопрос задан
  • 411 просмотров
Пригласить эксперта
Ответы на вопрос 2
CityCat4
@CityCat4
Внимание! Изменился адрес почты!
Это самое что ни на есть pure code. Начните с man open и посмотрите, сколько всего имеется open-ов разного рода. Мне сейчас в исходники ведра лезть лениво, но сто процентов - все эти open-ы сводятся макросами к одному какому-нибудь __open(), который передает вызов в ядро, какому-нибудь __kernel_open()
Ответ написан
jcmvbkbc
@jcmvbkbc
"I'm here to consult you" © Dogbert
В fs/open.c нет функции open()

Да вот же она: lxr.free-electrons.com/source/fs/open.c#L1049

SYSCALL_DEFINEx -- это реализация системного вызова с x параметрами, первое слово в скобках -- это название вызова, дальше -- x пар: тип параметра и имя параметра.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы