> Я вот пытаюсь все найти реализацию функции pipe() в Linux и > понять, как она работает. Т.е. нужно узнать внутреннее > устройство этой функции. Пока нашел вот такой код: > http://git.kernel.org/?p=linux/kernel/git/stable/linux-2.6. > 30.y.git;a=blob;f=fs/pipe.c;h=13414ec45b8d5b42012d8c5fbd56d > 54df5a96749;hb=HEAD > > Но мне не совсем понятно, какая из этих функций и как > вызывается при вызове pipe(). Не подскажете, что там > происходит? А то я совсем запутался. > > Заранее благодарен :-). Разбираться в незнакомом коде лучше всего с дебаггером.
Из того что я вижу вызывается sys_pipe, которая вызывает sys_pipe2 без флагов, та в сВою очередь создает пайпы с помощью create_write_pipe/create_read_pipe, затем создает дескрипторы для этих файлов через install_fd, которые и аопирует в юзермод. А вообще я в линуксах не Копенгаген, так что могу ошибаться
> Я вот пытаюсь все найти реализацию функции pipe() в Linux и > понять, как она работает. Т.е. нужно узнать внутреннее > устройство этой функции. Пока нашел вот такой код: > http://git.kernel.org/?p=linux/kernel/git/stable/linux-2.6. > 30.y.git;a=blob;f=fs/pipe.c;h=13414ec45b8d5b42012d8c5fbd56d > 54df5a96749;hb=HEAD > > Но мне не совсем понятно, какая из этих функций и как > вызывается при вызове pipe(). Не подскажете, что там > происходит? А то я совсем запутался. > > Заранее благодарен :-). Разбираться в незнакомом коде лучше всего с дебаггером.
Из того что я вижу вызывается sys_pipe, которая вызывает sys_pipe2 без флагов, та в сВою очередь создает пайпы с помощью create_write_pipe/create_read_pipe, затем создает дескрипторы для этих файлов через install_fd, которые и аопирует в юзермод. А вообще я в линуксах не Копенгаген, так что могу ошибаться
Syscall_define?14.06.09 15:05 Автор: n0xi0uzz <Черкасов Виктор> Статус: Member
> Разбираться в незнакомом коде лучше всего с дебаггером. > Из того что я вижу вызывается sys_pipe, которая вызывает > sys_pipe2 без флагов, та в сВою очередь создает пайпы с > помощью create_write_pipe/create_read_pipe, затем создает > дескрипторы для этих файлов через install_fd, которые и > аопирует в юзермод. А вообще я в линуксах не Копенгаген, > так что могу ошибаться