草庐IT

bytes_so_far

全部标签

go - 新手 : Properly sizing a []byte size in GO (Chunking)

新手警报!不太确定该怎么做-我想做一个“文件分块器”,我从二进制文件中抓取固定的slice,以便以后作为学习项目上传。我目前有这个:type(fileChunk[]bytefileChunks[]fileChunk)funcNumChunks(fios.FileInfo,chunkSizeint)int{chunks:=fi.Size()/int64(chunkSize)ifrem:=fi.Size()%int64(chunkSize)!=0;rem{chunks++}returnint(chunks)}//leftouterrchecksforbrevityfuncchunker(f

winapi - 从 unsafe.Pointer 获取特定 byte slice 的最佳(最安全 + 最高性能)方法是什么

我正在尝试转换thisc++去。简而言之,这就是C代码正在做的事情:staticconstchar*pSharedMem=NULL;intsessionInfoOffset;returnpSharedMem+pHeader->sessionInfoOffset;这是我的(伪)go代码:varpSharedMemunsafe.PointersessionInfoLenC.intbyteSlice:=C.GoBytes(pSharedMem,pHeader.sessionInfoLen)returnbyteSlice[pHeader.sessionInfoOffset:]我从来没有真正编写

go - 从第一个 CRLF 到最后读取一个 []byte

在golang中,有一个[]byte(来自ioutil.ReadAll),我应该需要从第一个换行符CRLF开始读取直到block结束。你能给我举些例子吗? 最佳答案 这可以使用bytes.Index轻松完成函数,它返回给定的字节子片在另一个byteslice中的索引:funcafterCRLF(data[]byte)[]byte{crlf:=[]byte("\r\n")index:=bytes.Index(data,crlf)ifindex==-1{returnnil}returndata[index+len(crlf):]}注意:

html - golang html/template ExecuteTemplate errant byte 它来自哪里?

背景我试图为Go编写一些GZIP中间件,但遇到了一个问题,因为http.DetectContentType()返回的是text/plain而不是text/html所以我追踪到第一个被写入的文本是某种类型或错误的字节,我仍在努力追查。我知道有很多解决方法,比如在执行模板时显式设置ContentType或使用bytes.Buffer并一次写入所有内容,但我真的很想找出导致写入这个单个字节的原因。例子这是一个非常人为的例子,它显示了同样的问题https://play.golang.org/p/SSrWP9jLRq运行时你会看到打印的第一件事是:“LENBYTES:1String:”嫌疑人如示

memory-management - bytes.Buffer 是否执行大量重新分配?

我想做的是有一个io.MultiWriter写入标准输出和字节缓冲区。像这样:packagemainimport"bytes"import"fmt"import"io"import"os"funcmain(){varbbytes.Buffermulti:=io.MultiWriter(&b,os.Stdout)fmt.Fprintf(multi,"eachofthesestrings\n")fmt.Fprintf(multi,"mightbelarge\n")fmt.Fprintf(multi,"andtherearemanyofthem\n")fmt.Println(b.String

go - 不能在赋值中使用 &dashUrl(类型 *[]byte)作为类型 *string

我正在尝试解析一个可能为空的表单帖子,如果是,我将更改变量。尝试使用*string类型。我遇到的问题是它不会为dashUrl转换,但会为start_time转换packagemainimport("encoding/base64""strconv""github.com/gocraft/web")typeYoutubeContextstruct{StartTime*float64`json:"start_time"`DashUrl*string`json:"dash_url"`}func(c*YoutubeContext)SetYoutubeContext(rwweb.Response

c - Golang C (.so) 在调用时导入分段违规

您好,我将在Linux环境中使用带有golang的第三方库(.so文件)。所以我试着用一些微不足道的东西来练习一下,比如从linux原生库中导入函数。并卡在导入和调用sqrt函数上。这是我的代码:packagemain//#cgoLDFLAGS:-ldl//#include//#includeimport"C"import"fmt"funcmain(){export_name:="sqrt"lib_path:="/lib/libm.so.6"//Loading.sohandle:=C.dlopen(C.CString(lib_path),C.RTLD_LAZY)ifhandle==ni

go - 寻找有关如何在 golang 中创建 dll/so/dylib 的基本示例/资源

我希望将我用golang编写的应用程序的一部分转换为dll/dylib/so,并从我的核心golang应用程序调用它。有没有人知道关于如何执行此操作的任何好的资源或指南,因为我的搜索没有提供大量信息(我发现的大部分内容都是对我理解的功能的旧请求,现在包括在内)请注意:我看过有关如何进行实际构建的文档,更多的是关于如何组织应用程序和公开我缺少的方法如果有人有做类似事情的经验,我也会对这种方法的优缺点感兴趣 最佳答案 c-sharedbuildmode目前仅在Linux上受支持。如此处所示,BuildingadllwithGo1.7,您

go - 如何在golang中将ascii码转换为byte?

正如标题所说,我可以找到给我字节ascii码的函数,但反之则不行 最佳答案 Golang字符串文字是UTF-8,因为ASCII是UTF-8的子集,并且它的每个字符只有7位,我们可以很容易地通过强制转换将它们作为字节获取(例如bytes:=[]字节(字符串):packagemainimport"fmt"funcmain(){asciiStr:="ABC"asciiBytes:=[]byte(asciiStr)fmt.Printf("OK:string=%v,bytes=%v\n",asciiStr,asciiBytes)fmt.Pri

go - 序列化结构字段以预先存在 byte slice

我有一个设置,可以通过网络接收数据并将其序列化到我的结构中。它工作正常,但现在我需要将数据序列化到slice缓冲区以通过网络发送它。我试图避免分配超过需要的空间,所以我已经设置了一个缓冲区,我想为我的所有序列化写入该缓冲区。但我不确定该怎么做。我的设置是这样的:recieveBuffer:=make([]byte,1500)header:=recieveBuffer[0:1]message:=recieveBuffer[1:]因此,我尝试将结构中的字段写入message,并将所有字段的总字节数作为header的值。这就是我反序列化结构的方式://Deserialize...func(u