修改写入时直接通过go-pipe写入文件或压缩文件
This commit is contained in:
@@ -127,20 +127,30 @@ func writeCoreDumpToFile() error {
|
|||||||
}
|
}
|
||||||
defer file.Close()
|
defer file.Close()
|
||||||
|
|
||||||
// 从标准输入流中读取数据,并将其写入文件中
|
// 创建一个管道
|
||||||
buf := make([]byte, 1024)
|
reader, writer := io.Pipe()
|
||||||
for {
|
// 将标准输入连接到管道的写入端
|
||||||
n, err := io.ReadAtLeast(os.Stdin, buf, 1)
|
go func() {
|
||||||
if err != nil && err != io.EOF {
|
defer writer.Close()
|
||||||
return err
|
io.Copy(writer, os.Stdin)
|
||||||
}
|
}()
|
||||||
if n == 0 {
|
|
||||||
break
|
// 从管道的读取端将内容写入文件
|
||||||
}
|
io.Copy(file, reader)
|
||||||
if _, err := file.Write(buf[:n]); err != nil {
|
|
||||||
return err
|
// buf := make([]byte, 1024)
|
||||||
}
|
// for {
|
||||||
}
|
// n, err := io.ReadAtLeast(os.Stdin, buf, 1)
|
||||||
|
// if err != nil && err != io.EOF {
|
||||||
|
// return err
|
||||||
|
// }
|
||||||
|
// if n == 0 {
|
||||||
|
// break
|
||||||
|
// }
|
||||||
|
// if _, err := file.Write(buf[:n]); err != nil {
|
||||||
|
// return err
|
||||||
|
// }
|
||||||
|
// }
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
func compress() error {
|
func compress() error {
|
||||||
@@ -167,22 +177,7 @@ func compress() error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
io.Copy(writer, os.Stdin)
|
||||||
// Copy the dataStream to the zip file in chunks.
|
|
||||||
buf := make([]byte, 1024)
|
|
||||||
for {
|
|
||||||
n, err := io.ReadAtLeast(os.Stdin, buf, 1)
|
|
||||||
if err != nil && err != io.EOF {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
if n == 0 {
|
|
||||||
break
|
|
||||||
}
|
|
||||||
_, err = writer.Write(buf[:n])
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user