栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何在go中将字节转换为struct(c struct)?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何在go中将字节转换为struct(c struct)?

我认为您正在以错误的方式进行操作。如果要使用C库,则可以使用C库读取文件。

不要纯粹使用cgo来拥有结构定义,您应该在Go中自己创建它们。然后,您可以编写适当的编组/解组代码以从原始字节读取。

快速的Google显示,有人已经完成了将相关C库的外观转换为Go所需的工作。请参阅utmp信息库。

一个简短的示例说明了如何使用它:

package mainimport (    "bytes"    "fmt"    "log"    "github.com/ericlagergren/go-gnulib/utmp")func handleError(err error) {    if err != nil {        log.Fatal(err)    }}func byteToStr(b []byte) string {    i := bytes.IndexByte(b, 0)    if i == -1 {        i = len(b)    }    return string(b[:i])}func main() {    list, err := utmp.ReadUtmp(utmp.UtmpxFile, 0)    handleError(err)    for _, u := range list {        fmt.Println(byteToStr(u.User[:]))    }}

您可以查看软件包的GoDoc以

utmp
获得更多信息。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/446397.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号