File io 在emacs lisp中访问超出最正fixnum的字节
TL;DR:32位emacs lisp字节范围能否超过文件的前512MB 我喜欢将emacs lisp用于各种数据处理任务,因为它(显然)与编辑器的集成度很高 在编写自定义函数时,我有时会遇到File io 在emacs lisp中访问超出最正fixnum的字节,file-io,elisp,filesize,emacs24,File Io,Elisp,Filesize,Emacs24,TL;DR:32位emacs lisp字节范围能否超过文件的前512MB 我喜欢将emacs lisp用于各种数据处理任务,因为它(显然)与编辑器的集成度很高 在编写自定义函数时,我有时会遇到most-positive-fixnum施加的限制。虽然我可以接受并理解无法将整个1GB文件加载到缓冲区的原因,但插入文件内容[-字面上]接口也不允许访问文件前512MB以外的数据块,因为它需要一个整数字节范围作为参数 有没有办法绕过这个限制?据我所知,目前,insert file contents是ema
most-positive-fixnum
施加的限制。虽然我可以接受并理解无法将整个1GB文件加载到缓冲区的原因,但插入文件内容[-字面上]
接口也不允许访问文件前512MB以外的数据块,因为它需要一个整数字节范围作为参数
有没有办法绕过这个限制?据我所知,目前,insert file contents
是emacs lisp可用的最低级的文件读取功能,insert file contents实际上是通过设置两个变量配置的第一个变量的变体,即emacs lisp似乎不提供任何低级的fopen
类型文件接口
奇怪的是,在某些情况下(可能使用自编二进制),使用浮点参数调用按字面意思插入文件内容
,允许访问高字节范围,但代价是舍入错误。但是,使用ftp.gnu.org上的最新预编译emacs版本(编写时为24.3)会产生(错误的类型参数文件偏移量)
错误 仅在Emacs中无法做到这一点。你必须以某种方式使用一些外部程序。这是一个已知的限制,我相信它已经存在于bug跟踪器中。似乎您必须使用外部命令,如head
和tail
,请参阅。在这种情况下,您可以随意处理emacs calc
任意精度的数字;我主要在Windows上使用emacs。