【Linux x86汇编踩坑】文件读写(一)读取文件并输出

本文介绍在Linux环境下,使用x86汇编进行文件读写操作,包括打开、读取和写入文件。通过系统调用号和特定的寄存器设置,演示如何读取文件内容并将其输出到屏幕。
摘要由CSDN通过智能技术生成

【Linux x86汇编踩坑】文件读写

前言

linux的文件是unix的文件处理方式,因此,无论linux文件是什么程序创建的,都可以作为连续的字节流进行访问,明确这一点是相当重要的。

文件调用号

首先看看几个关于文件的系统调用号

3 //读
4 //写
5 //打开
6 //关闭

如果想知道更多linux系统调用号请移步Linux系统调用号
对文件的操作都需要系统来完成,因此当我们需要打开或者读写一个文件时,需要向系统发出中断信号,由系统来完成这些操作,因为操作系统的安全性,这些对文件的操作都是放在管态中执行的,向系统发送中断信号都是通知cpu从目态进入管态。所以在文件读写中,向系统发送中断信号是必不可少的。

打开文件

当我们需要打开一个文件时,我们要告诉linux打开的文件名,并以特定的方式打开(read,write,create等),这是通过open系统调用处理的,通常来说,需要对文件操作都要经过打开这一步骤,但是有三个文件例外,这三个文件不是说不需要打开,而是系统在程序运行的过程中就已经帮我们完成了,它们是stdin,stdout,stderr分别对应标准输入文件,标准输出文件,标准错误文件,stdin通常指代键盘,用来接收键盘的输入,stdout通常指带屏幕,用来输出东西在屏幕上,stderr,当有错误发生的时,可以往里面写入错误信息。

在打开文件之前,我们需要将系统调用号放入%eax,文件的首地址放在%ebx中,以数字表示的读写意图放在%ecx中(通常用0来表示读,03101表示写),权限集合作为数字放在%edx中(默认为0666)。

把指定的信息放入相应的寄存器之后,就可以向系统发送中断信号来通知打开文件了。

打开文件过后,文件描述符通常放在%eax中,文件描述符可以代表一个文件,在整个程序中你都可以通过文件描述符对文件进行操作,在文件使用完毕后,你可以通知linux将文件关闭,这时,你的文件描述符不会有效。

以下是一个简单的打开文件示例,我们以打开当前目录下的data文件为例

openFile.s


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值