又一个进程启动了,操作系统老大叹了一口气,毕竟自己的肩头又多了一份责任。让人烦恼的是,新来的家伙们很无知,几乎就是一张白纸。有些老实本分的会按照自己的规矩来做事,有些刺头儿喜欢问这问那,时不时还想搞点非法的访问
操作系统老大
系统调用
EAX = 4 (4表示系统调用的编号)
EBX = 1 (1 表示stdout)
ECX = 那个字符串的地址
EDX = 字符串的长度
read 和 write
// 从文件(用fd表示)中读取len长度的内容,放到buffer中
read(fd, buffer, len);
// 把buffer中长度为len 的内容写入到socket中(用sockfd表示)
write(sockfd, buffer, len);
(1) 需要进入内核态两次,返回两次。
(2) 数据居然发生了三次复制,硬盘-->内核缓冲区-->用户缓冲区-->socket缓冲区
sendfile
sendfile(socket, file, len);