Go 는 기본적으로 많은 함수(?)들을 제공하지만 제공되지 않는 LIB 나 혹은 예전에 작성한 알고리즘등 당장 GO 언어로 변경하기 힘든 코드가 있다면 이를 사용할 수가 있다.  (Mathlab으로 작성한 알고리즘이 생각난다)

 

import "C"  를 선언하고

아래처럼 버퍼가 필요하면 생성하고 해제하여 사용하고 정수형의 경우는 그냥 사용한다.

func Strtol(s string, base int) (int, error) {
        p := C.CString(s)          // 문자열은 메모리 할당
        n, err := C.strtol(p, nil, C.int(base))
        C.free(unsafe.Pointer(p))  // 메모리 해제
        return int(n), err
}

 위의예제는 아래 싸이트에서 참조하였다.