请教read()函数
时间:2011-02-17
来源:互联网
glibc库:在unistd.h中的定义:extern ssize_t __read (int __fd, void *__buf, size_t __nbytes);
但是我始终没找到 __read()这个函数(或者宏) ,包括内核源码。
问问大家,它怎样到内核的函数的???

作者: shaohui973 发布时间: 2011-02-17
_Read 为系统调用 int 0x80 ......
作者: zd零 发布时间: 2011-02-17
_ _read()到 int 0x80,是怎么跑到这个int 0x80的???
0x80对应的中断号是128吧? 那这个base+128*4所指向的CS:IP是多少?是那个程序?

作者: shaohui973 发布时间: 2011-02-17
作者: amarant 发布时间: 2011-02-17
在 syscalls.h中 asmlinkage long sys_read(unsigned int fd, char __user *buf, size_t count);也没见着定义处,只有这个声明。还有这个asmlinkage 是什么含义?

作者: shaohui973 发布时间: 2011-02-17
这个是在syscall里面的,有一个表的。你可以百度下系统调用入口
作者: amarant 发布时间: 2011-02-17
在内核源码目录下使用下面命令:
grep SYSCALL_DEFINE[0-6]\(XXXX * -R --include=*.c
XXXX可以替换为任何系统调用名。未必能找到所有的,八九不离十吧。至少2.6.32下是这样。
作者: amarant 发布时间: 2011-02-17
asmlinkage通知编译器仅从栈中提取该函数的参数。所有的系统调用都需要这个限定词!
作者: angeltears 发布时间: 2011-02-17
仁兄,可以给出read系统调用的详细资料吗???从glic开始,一直到read的系统调用号 _ _NR_read

作者: shaohui973 发布时间: 2011-02-17
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28