golang - tip. 터미널 입력에서 입력 문자열 표시하지 않기, uintptr을 int로 변환

아래 글은 golang을 공부할 목적으로 웹에서 본 글들을 정리한 것이다.

터미널 입력에서 입력 문자열 표시하지 않기

  • 패스워드 등을 입력 받을 때 화면에 문자가 나오지 않게 하는 방법.
  • 아래 코드는 Windows에서는 동작하지 않음
package main

import (
    "fmt"
    "log"
    "syscall"

    "golang.org/x/crypto/ssh/terminal"
)

func main() {
    fmt.Print("Password: ")
    password, err := terminal.ReadPassword(int(syscall.Stdin))
    if err != nil {
        log.Fatal(err)
    } else {
        fmt.Printf("\nYour password is %v\n", string(password))
    }
}

uintptr을 int로 변환

// packetHeaderSt는 구조체
var packetHeader packetHeaderSt
packetHeaderSize := *(*int)(unsafe.Pointer(unsafe.Sizeof(packetHeader)))

이 글은 2018-11-13에 작성되었습니다.