[완료]혹시 stdout도 아니고 stderr도 아닌 화면출력 아시나요?

kaeri17의 이미지

mysql 로그인할때 mysql -u어쩌고 -p db이름 이렇게 쓰고 엔터를 누르면

'Enter password:' 라고 뜨잖아요. 근데 이게 어느스트림으로 출력되는지 리다이렉션을 해도 계속 출력이 되더라고요.

뭐 이 출력결과를 저장할 필요가 있는건 아닌데 그냥 궁금하네요.

bacon의 이미지

/dev/tty를 열어서 직접 사용하는것같은데, 대충 이런거죠.

#include <unistd.h>
#include <stdio.h>
#include <fcntl.h>
 
int main ()
{
        int tty;
        char buf[32];
        ssize_t n;
 
        tty = open("/dev/tty", O_RDWR);
        write (tty, "Enter Password: ", 16);
        n = read (tty, buf, sizeof(buf));
        write (tty, buf, n);
        close (tty);
        return 0;
}
kaeri17의 이미지

이런 방법이었군요~! 감사합니다.