我有两个问题:
1)如果我有一个包含例如某些数字的文件,例如:
4 5 6 7
或类似的话:
home sun cat dog
我可以将它映射到内存区域吗?或者它只能用于二进制文件?
2)即使文件很小,映射也很有用吗?
谢谢。
答案 0 :(得分:2)
1)所有文件都是二进制文件......但其中一些文件也可以被认为是更容易使用的文件。 (也就是说,你也可以映射你的文本文件,但内存将包含文本,而不是数字。)
2)映射可能有用与否,具体取决于您正在使用它做什么/将其映射到内存的原因是什么。如果你的理由是有效的阅读,你可能在小文件上什么也得不到(并且什么都不会丢失)。如果您的原因是通过代码甚至不知道它正在处理文件来直接访问文件,那么它甚至对小文件也很有用。
答案 1 :(得分:0)
是的,您可以将其映射到内存区域。它是否有用取决于您的用例。
你似乎对什么是二进制文件感到有点困惑...对于计算机来说,所有文件都是“二进制”,从某种意义上说它们只是一个字节列表。我们称之为非二进制文件通常是人类可读的文件,这意味着它们包含的字节值显示为字母,数字和其他可读符号。
然后,在某些操作系统(Windows)上,如果以非二进制形式打开文件,则在向文件写入换行符('\ n')时会进行一些特殊处理。会发生的是,实现在换行符之前添加一个返回字符('\ r'),因为在Windows行结尾处是“\ r \ n”而不是像其他操作系统上的“\ n”。请注意,'\ n'和'\ r'只是'a'或'b'或'!'之类的值是的,它们都在0-255范围内(可以在无符号字符中存储的值)。
答案 2 :(得分:-1)
通常所有文件都映射到内存中以便查看或处理。从内存OS将数据发送到CPU或其他硬件设备。无论文件大小如何,都需要进行映射。