neptunesoft 发表于 2011-4-21 01:25:09

求教 LINUX下文件数据读取

本帖最后由 neptunesoft 于 2011-4-21 01:29 编辑

这个是我WINDOWS下的.执行通过了,

push    0
push    80
push    3
push    0
push    1
push    80000000
push    00478924                         ; ASCII "c:\windows\neptune.dat"    要读入的文件
call    <jmp.&kernel32.CreateFileA>       文件返回句柄放在EAX里了.
push    51BF                                 
mov   edx, esp
push    0
push    edx
push    51BF      数据大小
push    esi          ESI为写入数据的位置,
push    eax
call    <jmp.&kernel32.ReadFile>

这样文件的数据都读入了ESI的地址中了.

我想知道的是,在LINUX下应该用什么函数,怎么实现上面的功能.....

我在LINUX下这样写好像不对
push    0               ; oflag
push    offset aUsrLibNetzoneN ; "/usr/lib/2323/neptune.dat"
call    _open
mov   ecx, 522Fh
mov   edx, esi
push    ecx             ; nbytes
push    edx             ; buf
push    eax             ; fd
call    _read
请帮我看看错误是什么地方
其实就是把NEPTUNE.DAT的数据读到指定的内存区域中(ESI)

希望那位高手帮我写下这段代码

neptunesoft 发表于 2011-4-22 03:44:06

已经完美解决,哎,什么都得靠自己啊~~~~~~~~~~~~~~~~
页: [1]
查看完整版本: 求教 LINUX下文件数据读取