ATT汇编学习笔记之使用文件

使用文件:系统调用打开 5 打开要访问的文件并且创建指向该文件的句柄。读取 3 使用文件句柄打开文件写入 4 使用文件句柄写入关闭 6 关闭文件并且删除文件句柄打开:int open(const char* pathname , int flags , mode_t mode);eax 5 ebx 包含以空字符结尾的文件名字符串的开始位置的内存地址。ecx 需要文件的访问;类型的标志的真数值edx 如果是创建新文件,则表示包含unix权限的整数值c常量: 数字值 描述O_RDONLY 00 打开文件,只读O_WRONLY 01 只写O_RDWR 02 打开文件,读写访问O_CREAT 0100 文件不存在则创建O_EXCL 0200 与O_CREAT一起使用时O_TRUNC 01000 如果文件存在并且按照只写,模式打开,则把文件长度截断为0.O_APPEND 02000 把数据追加到文件尾部。O_NONBLOCK 04000 按照非块模式打开。O_SYNC 010000 按照同步模式打开文件(同时只允许一个写入)O_ASYNC 020000 按照异步模式打开(同时允许多个写入操作)打开文件代码:.section .datafilename: .asciz "output.txt"…..section .text….movl $filename , %ebxmovl %esp , %ebp..movl 8(%ebp) , %ebxmovl $5 , %eaxmovl $filename , %ebxmovl $0102 , %ecxmovl $0644 , %edxint $0x80test %eax , %eaxjs badfile错误码:错误值:描述EPERM 1 操作不被允许ENOENT 2 没有此文件EBADF 9 坏文件句柄数字EACCES 13 权限被拒绝EFAULT 14 坏文件地址EBUSY 16 设备或者资源忙EEXIST 17 文件存在EISDIR 21 是目录EMFILE 24 过多打开文件EFBIG 27 文件过大EROFS 30 只读文件系统ENAMETOOLONG 36 文件名过长关闭文件movl filehandle , %ebxmovl $6 , %eaxint $0x80read调用 ssize_t read(int fd , void* buf , size_t count);句柄 缓冲区 字节数量eax 3 系统调用值ebx 打开文件的句柄ecx 缓冲区的内存位置edx 要读取字节数量的整数值操作系统不能在读文件时写文件。void *mmap(void* start,size_t length,int port,int flags,int fd,off_t offset);内存中起始位置 字节数量 内存保护设置 要创建的映射对象类型 要映射到内存文件的句柄 文件中要复制到内存的数据的起始点保护名称:PORT_NONE 0 不允许数据访问PORT_READ 1 允许读取访问PORT_WRITE 2 允许写入访问PORT_EXEC 4 允许执行访问flags:MAP_SHARE 1 和其它进程共享内存映射文件的改动MAP_PRIVATE 2 保持所有改动对这个进程是私有的msync 原始文件和内存文件做同步映射munmap 从内存中删除内存映射文件并且把所有改动写入原始文件int msync(const void* start,size_t length, int flags);int munmap(void* start,size_t length);MS_ASYNC 在下一次写入文件时安排更新,并且系统返回调用MS_SYNC 系统调用等待,直到做出更新,然后再返回调用程序系统调用值mmap 90munmap 91msync 144mmap模板pushl $0puhl filehandlepushl $1pushl $3pushl sizepushl $0movl %esp , %ebpmovl $90 , %eaxint $0x80addl $24 , %espmovl %eax , mappedfileunmapmovl $91 , %eaxmovl mappedfile , %ebxmovl size , %ecxint $0x80int llseek(unsigned int fd,unsigned long offset_high,unsigned long offset_low ,loff_t *result,unsigned int whence);stack:offsetfdflagsportlengthstart ebx

,而是他们在同伴们都睡着的时候,一步步艰辛地向上攀爬的。

ATT汇编学习笔记之使用文件

相关文章:

你感兴趣的文章:

标签云: