(writer io.Writer, reader io.Reader)
| 41 | } |
| 42 | |
| 43 | func CloneFile(writer io.Writer, reader io.Reader) (bool, error) { |
| 44 | fdst, fdstFound := writer.(*os.File) |
| 45 | fsrc, fsrcFound := reader.(*os.File) |
| 46 | if fdstFound && fsrcFound { |
| 47 | if err := unix.IoctlFileClone(int(fdst.Fd()), int(fsrc.Fd())); err != nil { |
| 48 | return false, err |
| 49 | } |
| 50 | return true, nil |
| 51 | } |
| 52 | return false, nil |
| 53 | } |
| 54 | |
| 55 | func CloneFileByPath(dst, src string) (bool, error) { |
| 56 | srcFile, err := os.Open(src) |