uname 내부 명령 코딩시 리턴값이 잘못 출력이 됩니다

tkfkdgody의 이미지

안녕하세요.
시스템 함수를 이용해서 리눅스 버전을 받아와 정리할려고 하는데 리눅스 버전이 아래와 같이 나옵니다.

   struct utsname buf;
    uname(&buf);
 
    printf("%s \n", buf.version);

출력 결과 :
 #1

원하는 결과 :
 VERSION = 10.1

출력 결과를 원하는 결과로 바꾸려면 어떻게 해야 할지요... 혹 커널을 컴파일해야 하는건 아닌지요?
(커널을 컴파일해야 된다면 문제가 되는 서버마다 전부 컴파일해줘야 하는 비용이 들기 때문에)
 cat SuSE-release
와 같은 내부 명령을 이용해서 버전정보를 받아올 수 있는 방법이 있을까요...

조언 부탁드리겠습니다.