草庐IT

screen_copy

全部标签

windows - 为什么在go语言中使用io.Copy时文本的编码不同?

我正在尝试在Windows上通过go语言重建一个类似tee的实用程序。但我发现输出的编码并不总是相同的。为了简化问题,我写了这个程序:packagemainimport("fmt""io""os")funcmain(){count,err:=io.Copy(os.Stdout,os.Stdin)fmt.Println(count,err)}我把它命名为测试。在Windows命令控制台中,我得到了这些输出:>test中中5它在没有管道和重定向的情况下工作正常。>echo中|test��5如果我从管道获取标准输入,输出将被折叠。>echo中|test>test.txt>typetest.t

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/

file - io.Copy() 的稀疏文件很大

我想将文件从一个地方复制到另一个地方,但问题是我要处理很多稀疏文件。有没有什么(简单的)方法可以复制稀疏文件而不会在目的地变得很大?我的基本代码:out,err:=os.Create(bricks[0]+"/"+fileName)in,err:=os.Open(event.Name)io.Copy(out,in) 最佳答案 一些背景理论请注意,io.Copy()会通过管道传输原始字节——一旦您认为它将数据从io.Reader传输到,这就可以理解了io.Writer对应提供了Read([]byte)和Write([]byte)。因此,

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

tcp - Golang 1.5 io.Copy 被两个 TCPConn 阻塞

http://play.golang.org/p/gZo5RqgY4F我对io.Copy方法有疑问。上面的链接将在Go1.5下的第44行阻塞。但会在1.4.2中通过。我不知道这个问题。这是我的go版本:goversiongo1.5darwin/amd64。io.Copy是什么时候在go1.5中返回的? 最佳答案 以前,当系统调用的计时会在您的第二个io.Copy[第41行]中导致写入错误时,您会很幸运。(忽略错误往往会隐藏错误)这纯属偶然(甚至可能是不正确的)。由于该副本的源连接(conn2)永远不会关闭,因此io.Copy永远不会

戈朗 : Values containing the types defined in this package should not be copied

链接https://golang.org/pkg/sync/声明“不应复制包含此包中定义的类型的值。”为什么会这样?如果我忽略建议会怎样? 最佳答案 它不再作为同步原语工作。充其量你会得到不可预测的行为。将锁(例如)想象成一个标志。如果它被锁定,则标志被设置。如果你复制那个锁(你复制标志的状态),副本会表现得好像它被锁定了,而实际上它没有。如果您解锁副本,原件不会更改,因此它会表现得好像已被锁定,而实际上它不应再被锁定。 关于戈朗:Valuescontainingthetypesdefi

css - Golang : io. Copy(httpReponseWriter, os.File) 与 http.ServeFile()

在意识到http包有一个内置的ServeFile方法之前,我或多或少地实现了一个静态处理程序,如下所示:funcStaticHandler(whttp.ResponseWriter,r*http.Request){filename:=mux.Vars(r)["static"]//usinggorilla/muxf,err:=os.Open(fmt.Sprintf("%v/static/%v",webroot,filename))iferr!=nil{http.NotFound(w,r)return}deferf.Close()io.Copy(w,f)}并且,例如,以这种方式链接我的样式

file - io.Copy() 的稀疏文件很大

我想将文件从一个地方复制到另一个地方,但问题是我要处理很多稀疏文件。有没有什么(简单的)方法可以复制稀疏文件而不会在目的地变得很大?我的基本代码:out,err:=os.Create(bricks[0]+"/"+fileName)in,err:=os.Open(event.Name)io.Copy(out,in) 最佳答案 一些背景理论请注意,io.Copy()会通过管道传输原始字节——一旦您认为它将数据从io.Reader传输到,这就可以理解了io.Writer对应提供了Read([]byte)和Write([]byte)。因此,

string - Go语言是否对字符串使用Copy-on-write

这个问题在这里已经有了答案:DoesGolangCopytheStringonModification/Write?(2个答案)关闭7个月前。Go语言是否像Java一样对字符串使用Copy-on-write?IE。如果我按值将一个字符串传递给一个方法并且从不更改它,这将分配内存并复制该字符串(这将是时间效率低下的)或者它只会引用一个副本。

go - io.Copy 导致 golang 内存不足

我使用io.Copy()复制一个文件,大约700Mb,但它导致内存不足bodyBuf:=&bytes.Buffer{}bodyWriter:=multipart.NewWriter(bodyBuf)//keystepfileWriter,err:=bodyWriter.CreateFormFile(paramName,fileName)iferr!=nil{returnnil,err}file,err:=os.Open(fileName)//thefilesizeisabout700Mbiferr!=nil{returnnil,err}deferfile.Close()//iocopy