【问题标题】:Mips syscall + eof = can't read the entire file?Mips syscall + eof = 无法读取整个文件?
【发布时间】:2009-05-02 04:43:58
【问题描述】:

我正在编写一些 mips 代码,每次循环迭代读取 ~4kb。问题是我正在读取的 mp3 文件包含多个 1A 实例,因此系统调用 14 停止并且不会再读取而不会到达文件的实际末尾。有没有办法解决?另外,有没有人有可以添加到系统调用 13 的标志的完整列表?

谢谢

【问题讨论】:

  • 你用的是什么模拟器?你在板上编程吗?如果是这样,什么o.s.它在运行吗?系统调用因 s.o 到 s.o/模拟器而异。
  • 为我的西班牙语道歉,那是“从 os 到 os”

标签: mips


【解决方案1】:

如果您使用的是 MARS 模拟器,我认为这是不可能的(除非有人在您的特定安装中扩展了系统调用接口)。来自文档here

MARS 实现了两种模式:0 表示读取,1 表示写入,并且忽略标志。

如果您使用的是 MARS 以外的模拟器,您需要告诉我们是哪一个。并非所有这些都实现相同的系统调用。

【讨论】:

    【解决方案2】:

    尝试以二进制模式打开文件。

    【讨论】:

    • 您的意思是使用 $a1 中的标志 0x8000 打开文件吗?除了尝试之外,我不确定您还有什么意思,而且我已经尝试过了。不过谢谢
    • zvrba,你显然不知道你在说什么
    • 好吧,他没有给出任何平台特定的信息,1A是十六进制的26,是DOS文件在文本模式下打开时的EOF字符。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-09
    • 2015-10-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-19
    • 1970-01-01
    • 2022-11-15
    相关资源
    最近更新 更多