Crystal C 绑定:使用 fopen
Crystal C bindings: using fopen
我需要对库使用 fopen。
这是正确的方法吗? fopen 已经在某处定义了吗? (这在 LibC IMO 中很有用)
@[Link("c")]
lib LibStd
type File = Void*
fun fopen( LibC::Char*, LibC::Char* ): File
fun fclose( File )
end
它工作正常,我想知道定义它的最佳方式。
不用C,直接用Crystal:
File.open(path) { |file| ... }
如果您需要访问文件描述符,您可以调用 file.fd
。
只是一个可能有用的小改进(这是我在绑定中使用的当前解决方案):
@[Link("c")]
lib LibStd
type File = Void
fun fopen( filename : LibC::Char*, mode : LibC::Char* ): File*
fun fclose( stream : File* )
end
我需要对库使用 fopen。 这是正确的方法吗? fopen 已经在某处定义了吗? (这在 LibC IMO 中很有用)
@[Link("c")]
lib LibStd
type File = Void*
fun fopen( LibC::Char*, LibC::Char* ): File
fun fclose( File )
end
它工作正常,我想知道定义它的最佳方式。
不用C,直接用Crystal:
File.open(path) { |file| ... }
如果您需要访问文件描述符,您可以调用 file.fd
。
只是一个可能有用的小改进(这是我在绑定中使用的当前解决方案):
@[Link("c")]
lib LibStd
type File = Void
fun fopen( filename : LibC::Char*, mode : LibC::Char* ): File*
fun fclose( stream : File* )
end