我fmt.Scanf用来读取Golang中的字符串输入.但是当我们传入一个大输入(> 1024个字符)时,命令会停止.我正在使用Go版本go1.8.3 darwin/amd64.
这是代码
package main
import "fmt"
func main() {
var s string
fmt.Scanf("%s", &s)
fmt.Println(s)
}
Run Code Online (Sandbox Code Playgroud)
这是有效负载失败https://pastebin.com/raw/fJ4QAZUZ
Go似乎接受输入,直到Jy标记1024个字符的有效负载.1024是限制还是什么?
PS - 我已经在那个链接上篡改了编码的cookie,所以不用担心.
这不是fmt包的限制,或者fmt.Scanf()此示例正确扫描超过3KB:
// src is a looooong text (>3KB)
var s string
fmt.Println(len(src))
fmt.Sscanf(src, "%s", &s)
fmt.Println(len(s))
Run Code Online (Sandbox Code Playgroud)
在Go Playground尝试一下
这很可能是您终端的限制.我也尝试了你未经修改的版本,粘贴了超过10KB的文本,结果是4096字节(Ubuntu linux 16.04,Bash).
| 归档时间: |
|
| 查看次数: |
118 次 |
| 最近记录: |