这段代码可有大神解读一下,谢谢!!!
intclose(intfd){long__res;__asm__volatile("int$0x80":"=a"(__res):"0"(__NR_close),"b"(...
int close(int fd)
{
long __res;
__asm__ volatile ("int $0x80"
: "=a" (__res)
: "0" (__NR_close),"b" ((long)(fd)));
if (__res >= 0)
return (int) __res;
errno = -__res;
return -1;
}
这是linux0.11内核代码 内嵌汇编?大神帮我简单解读一下 百度我都无从下手 先谢谢了 展开
{
long __res;
__asm__ volatile ("int $0x80"
: "=a" (__res)
: "0" (__NR_close),"b" ((long)(fd)));
if (__res >= 0)
return (int) __res;
errno = -__res;
return -1;
}
这是linux0.11内核代码 内嵌汇编?大神帮我简单解读一下 百度我都无从下手 先谢谢了 展开
1个回答
展开全部
__asm__ volatile这个确实是C语言中嵌入汇编。
系统调用是一个软中断,中断号是0x80,它是上层应用程序与Linux系统内核进行交互通信的唯一接口。
"int $0x80" 是调用系统中断,__NR_close为系统中断调用号,__res是中断调用返回值。
close函数返回: 如果返回值大于等于0,则返回该值,否则置出错号errno,并返回-1
参见:
http://blog.csdn.net/yming0221/article/details/6398414
系统调用是一个软中断,中断号是0x80,它是上层应用程序与Linux系统内核进行交互通信的唯一接口。
"int $0x80" 是调用系统中断,__NR_close为系统中断调用号,__res是中断调用返回值。
close函数返回: 如果返回值大于等于0,则返回该值,否则置出错号errno,并返回-1
参见:
http://blog.csdn.net/yming0221/article/details/6398414
AiPPT
2024-09-19 广告
2024-09-19 广告
随着AI技术的飞速发展,如今市面上涌现了许多实用易操作的AI生成工具1、简介:AiPPT: 这款AI工具智能理解用户输入的主题,提供“AI智能生成”和“导入本地大纲”的选项,生成的PPT内容丰富多样,可自由编辑和添加元素,图表类型包括柱状图...
点击进入详情页
本回答由AiPPT提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询