对 linux 进行 sys_read 系统调用会在寄存器 eax 中放入什么?

Luc*_*nis 0 assembly nasm

当在汇编器中进行系统调用sys_read(int80h,eax中的值为3)时,调用后寄存器eax中将存储什么?是读取的字符串中的字符数吗?

小智 5

检查read(2)文档:

返回值

成功时,返回读取的字节数(零表示文件结尾),并且文件位置前进该数字。如果该数字小于请求的字节数,则不是错误;例如,这可能会发生,因为现在实际可用的字节较少(可能是因为我们接近文件结尾,或者因为我们正在从管道或终端读取),或者因为read()被信号中断。出错时,返回 -1,并errno进行适当设置。在这种情况下,未指定文件位置(如果有)是否更改。

提示:查找文档sys_foo,键入man 2 foo2表示系统调用