funkce write()
Martin `MJ' Mares
mj na ucw.cz
Pondělí Květen 7 14:48:38 CEST 2007
Ahoj Dalibore,
> pisu si malinky wrapper na sockety a potreboval bych vedet, jak presne
> funguje write(), jenze nemuzu najit ten spravny .c soubor. Sice jsem
> nasel v kernelu asi tu spravnou socket->ops->sendmsg(), ale nejvice
> me zajima, kde dochazi ke kopirovani z meho bufferu[] do kerneliho
> a jak se to kopiruje a jestli to dela knihovna socket a kernel pak
> jeste jednou apod.?
v kernelu 2.6.20 to vypada takto:
sys_write() -> vfs_write() ... ten zjisti, ze socket nema svuj vlastni
write hook -> do_sync_write() -> aio_write hook -> sock_aio_write()
-> do_sock_write() a tam se prelozi na sendmsg -> __sock_sendmsg()
-> sendmsg hook od socketu, ktery uz je zavisly na protokolu. Data se
kopiruji az tam.
Socketova knihovna to urcite delat nemuze, protoze Linux zadnou nema :-)
Have a nice fortnight
--
Martin `MJ' Mares <mj na ucw.cz> http://mj.ucw.cz/
Faculty of Math and Physics, Charles University, Prague, Czech Rep., Earth
Who is General Failure and why is he reading my disk?
Další informace o konferenci Linux