File tree Expand file tree Collapse file tree 3 files changed +441
-433
lines changed Expand file tree Collapse file tree 3 files changed +441
-433
lines changed Original file line number Diff line number Diff line change 11package c
22
3- // #cgo CFLAGS: -I .
4-
5- /*
6- #include "md5.h"
7- #include <stdlib.h>
8- */
9- import "C"
10-
113import (
124 "crypto/md5"
135 "encoding/hex"
146 "errors"
157 "io"
168 "os"
17- "unsafe"
189)
1910
2011var ErrOpenFileError = errors .New ("Open File Error" )
2112
22- func MD5FileByC (filename string ) (string , error ) {
23- pName := C .CString (filename )
24- defer C .free (unsafe .Pointer (pName ))
25- var md5bytes [16 ]byte
26- r := C .MD5File (pName , (* C .uchar )(& md5bytes [0 ]))
27- if int (r ) != 0 {
28- return "" , ErrOpenFileError
29- }
30- return hex .EncodeToString (md5bytes [:]), nil
31- }
32-
33- func MD5FileByCEx (filename string ) (string , int64 , error ) {
34- pName := C .CString (filename )
35- defer C .free (unsafe .Pointer (pName ))
36- var md5bytes [16 ]byte
37- r := C .MD5FileExt (pName , (* C .uchar )(& md5bytes [0 ]))
38- if int (r ) < 0 {
39- return "" , 0 , ErrOpenFileError
40- }
41- return hex .EncodeToString (md5bytes [:]), int64 (r ), nil
42- }
43-
4413func MD5FileByGo (filename string ) (string , error ) {
4514 f , err := os .Open (filename )
4615 if err != nil {
You can’t perform that action at this time.
0 commit comments