草庐IT

jaws-screen-reader

全部标签

c++ - 如何使用 SWIG 和 CGO 将 io.Reader 转换为 std::istream?

我正在尝试使用SWIG为使用std::istream读取二进制数据的C++API创建Go包装器。我希望能够将io.Reader传递给这些API,但我不确定如何在它和std::istream之间创建映射。我知道我需要实现一个std::streambuf子类,我假设其余部分将涉及Controller和类型映射,但我对SWIG不够熟悉,无法找出正确的组合。有什么想法吗? 最佳答案 io.Reader过于笼统,无法传递给C函数——它可能根本无法支持真实文件(它只是一个实现Read(...)函数的类)你可以做的(只要你不在windows上)是

go - 如何在 Go 中重用原始的 strings.Reader?

我有一个类型为strings.Reader的输入。根据输入,我从中提取id并将其打印出来。然后我将原始输入传递给一个通用函数,该函数对其执行其他任务。我能想到的重用原始内容的唯一方法是读取内容并将其传递给bytes.Reader两次。以下是在Go中实现该目标的唯一方法吗?packagemainimport("bytes""encoding/json""fmt""io""io/ioutil""log""strings")typeFoodstruct{Idint`json:"id"`Namestring`json:"name"`}funcgenericFunction(bodyio.Rea

file - base64 解码器(io.Reader 实现)不当行为

我已经尝试在for循环中重新声明/分配base64解码器,并使用os.Seek函数返回到循环结束前的文件开头,以便调用的函数(在此测试用例中为PrintBytes)能够在整个for循环中从头到尾一次又一次地处理文件。这是我的(我敢肯定非常不合惯用的)代码,在main()中主for循环的第二次迭代期间,它未能将第二个字节读入长度为2且容量为2的[]字节:packagemainimport("encoding/base64""io""log""net/http""os")var(remote_filestring="http://cryptopals.com/static/challeng

go - 在 Go 中作为命令启动 screen ?

我正在创建一个应在单独的screen中启动脚本的应用程序session。使用的编译器:go1.10.1linux/amd64。我当前的代码如下所示:cmd:=exec.Command("screen","-S","test","node/home/servers/test/main.js")cmd.Stdout=os.Stdoutcmd.Start()执行此操作会在输出中返回以下内容:Mustbeconnectedtoaterminal.我还测试了用指定的shell启动它:cmd:=exec.Command("bash","-c","screen","-S","test","node/

io - 在两个函数之间发送 `Reader`

我正在尝试发出GET请求,然后在POST请求中将我获得的内容发送到另一个站点。以下代码工作正常:funcdeliver(sourceURL*url.URL,destinationURL*url.URL){client:=&http.Client{}sourceResponse,err:=http.Get(sourceURL.String())iferr==nil{body,_:=ioutil.ReadAll(sourceResponse.Body)client.Post(destinationURL.String(),"text/html",strings.NewReader(stri

go - 通过 gzip 将命令输出通过管道传输到 Reader

我正在尝试执行shell命令并压缩它的输出。问题是我随后需要与需要Reader的API进行交互。为此,我尝试了以下(简化代码):packagemainimport("encoding/hex""testing""fmt""io""io/ioutil""os/exec""compress/gzip")funcTestPipe(t*testing.T){cmd:=exec.Command("echo","hello_from_echo")reader,writer:=io.Pipe()gzW:=gzip.NewWriter(writer)cmd.Stdout=gzWcmd.Start()g

go - 将缓冲区绘制到屏幕时绑定(bind)不匹配 (golang.org/x/exp/shiny/screen)

我正在尝试使用golang.org/x/exp/shiny/screen创建一个窗口,然后在屏幕上绘制一个缓冲区。我已经为窗口和我在窗口上发布的缓冲区分配了相同的边界(高度和宽度),但是当我看到结果时似乎不匹配。你可以在图片中看到,上传到窗口的蓝色缓冲区没有完全覆盖它。packagemainimport("image""image/color""log""golang.org/x/exp/shiny/driver""golang.org/x/exp/shiny/screen""golang.org/x/mobile/event/key""golang.org/x/mobile/even

go - 从 io.Reader 创建一个 io.ReaderAt

是否有io.ReaderAt的实现可以从io.Reader的实现创建而无需先读入[]byte或string? 最佳答案 类似下面的内容。注意bytes.Reader实现了ReadAt(...)方法/函数:https://golang.org/pkg/bytes/#Reader.ReadAt.所以bytes.NewReader行本质上就是您要查找的内容。获取bytes.Reader:varioReaderio.Reader...buff:=bytes.NewBuffer([]byte{})size,err:=io.Copy(buff,

go - rand.Reader读取时可能会报错?

我是否正确理解crypto/rand.Reader可以在下面未列出的平台上返回读取错误仅,即当它没有实际实现时?//Readerisaglobal,sharedinstanceofacryptographically//strongpseudo-randomgenerator.////OnLinux,Readerusesgetrandom(2)ifavailable,/dev/urandomotherwise.//OnOpenBSD,Readerusesgetentropy(2).//OnotherUnix-likesystems,Readerreadsfrom/dev/urandom

html - 去 Reader.read();如何在不重复的情况下获取内容?

我最近开始研究Go作为一个业余项目,并一直在努力更好地处理Reader界面。具体来说,我正在尝试从网站获取内容,然后将其读取为字节slice。我知道ioutils.ReadAll函数是获取数据的规范方式,但我很好奇为什么我编写的原始函数在输出末尾有重复的内容。代码:包主import("net/http""fmt")funcmain(){//retrieveurlfromhackernews.resp,err:=http.Get("http://news.ycombinator.com/")iferr!=nil{//handleerror}deferresp.Body.Close()te