printf~~~ sprintf~~~ 이렇케 사용할수도 있습니다.. ^^*
main() { char temp[16] = {0}; sprintf(temp, "TEST : %.*s", 5, "1234567890"); printf("%.*s\n%s\n", strlen(temp), "12345678901234567890", temp); }
예전에 어디선가 봤는데, sprintf는 buffer overflow attack 땜시 쓰지 말라더군요. snprintf를 쓰라고 들었슴당. :)
It's better to burn out than to fade away. -- Kurt Cobain.
그래서 %.*s 를 예로 들어주신거 같은데요.
.을 찍고 *를 하면 해당 인자의 값을 취해서 그만큼만 데이터 길이를 짤라서 취합니다. 그러므로 Buffer overflow를 방지 가능하겠죠. 만약 점(.)을 안찍고 하면 가능하겠네요.
딴지는 아닙니다..
예전에 어디선가 봤는데, sprintf는 buffer overflow attack 땜시 쓰지 말라더군요. snprintf를 쓰라고 들었슴당. :)
It's better to burn out than to fade away. -- Kurt Cobain.
Re: 딴지는 아닙니다..
그래서 %.*s 를 예로 들어주신거 같은데요.
.을 찍고 *를 하면 해당 인자의 값을 취해서 그만큼만 데이터 길이를 짤라서 취합니다.
그러므로 Buffer overflow를 방지 가능하겠죠.
만약 점(.)을 안찍고 하면 가능하겠네요.