안녕하세요. 리눅스 프로그래밍을 공부하고 있는 학생입니다.
혹시 윈도우즈API같이 리눅스 프로그래밍을 할 때 쓰는 API를 공부할 수 있는 사이트가 있으면
추전 좀 부탁드립니다.
그리고 혹시 윈도우즈프로그래밍에서는 SystemParametersInfo()를 이용하여 바탕화면 이미지를
변경할 수 있던데, 리눅스에서 이러한 기능을 제공해 주는 함수가 존재하는지 알고 싶습니다.
답변 부탁드립니다.
그놈이나 KDE 상관은 없습니다.
현재 버튼을 누르면 제가 원하는 이미지로 Desktop Background의 이미지를 바꾸고 싶은데
로그아웃을 한번 했다가 로그인을 다시 하면 바탕화면의 이미지가 바뀌는건 했는데
보통 바탕화면 바꾸기 처럼 바로 갱신이되는 방법을 도저히 찾지 못하여서 그에 따르는 함수가 존재하는지
알고 싶어서 질문을 드렸습니다. 혹시 알고 계신다면 답변부탁드립니다.
답변 감사드립니다^^;
윈도우처럼 통일된 API가 있는 것은 아닙니다.
어떤 라이브러리를 이용하느냐에 따라 다르죠.
간단한 예를 들자면,
malloc()같은 일반적인 C 프로그래밍시 제공하는 함수들은 glibc가 담당합니다.
read(), open() 등의 시스템과 밀접한 작업들은 시스템 콜이라는 것이 있는데,
이 부분은 리눅스 커널에서 담당하고요.
(하지만 시스템콜도 사용하기 편하게 glibc에서 wrapping을 해줍니다.)
데탑으로 흔히 쓰는 X윈도우 관련된 그래픽은 X11이고(xfree86, xorg에 있음)
그리고 이 위에서 도는 X툴킷, GTK, QT 등이 있고,
그외에 게임 등등에 사용되는 SDL은 그에 맞는 함수를 제공해 줍니다.
즉 어떤 것을 하기 위해서는 무슨 라이브러리가 필요한지 알아보고,
그것의 사용법을 익히면 됩니다.
이렇게 된데는 리눅스는 윈도우처럼 한 벤더가 통합해서 제공하는게 아니라 여러
사람이 만들어 놓은 여러 가지 프로그램이 서로 연결되서 돌아가는 구조기 때문입니다.
만일 님이 원하는 기능을 구현하는데, 그와 관련된 라이브러리 없다... 그러면 직접 만드는겁니다.
궁금하시면 glibc 같은 라이브러리가 어떤 원리로 돌아가는지 뜯어보는것도 좋고요. 실력 UP에 좋습니다.
데스크탑 API
리눅스*는 윈도우*처럼 데스크탑 체계가 하나가 아니라,
여러 데스크탑 체계(그놈*이나 KDE 등······)가 있기 때문에
바탕 화면 그림을 바꾸려면 데스크탑 체계에 맞는 API를 써야 할겁니다.
어떤 데스크탑 체계를 쓰시나요?
..
윈도우즈와는 조금 다른 접근법으로 이용하셔야 될겁니다.
윈도우즈의 경우 책이나 API 북을 통해서 손쉽게 원하는 API를 찾아 낼수있지만
*NIX 계열은 가장 훌륭한 메뉴얼은 man page입니다. 조금 하시다 보면 얼추
익숙해질겁니다.
바탕화면 이미지
그놈이나 KDE 상관은 없습니다.
현재 버튼을 누르면 제가 원하는 이미지로 Desktop Background의 이미지를 바꾸고 싶은데
로그아웃을 한번 했다가 로그인을 다시 하면 바탕화면의 이미지가 바뀌는건 했는데
보통 바탕화면 바꾸기 처럼 바로 갱신이되는 방법을 도저히 찾지 못하여서 그에 따르는 함수가 존재하는지
알고 싶어서 질문을 드렸습니다. 혹시 알고 계신다면 답변부탁드립니다.
답변 감사드립니다^^;
kde background picture 로
kde background picture 로 검색하니 아래와 같은 글이 나오는군요. 찾으시던 것이길 바래요.
http://www.linuxquestions.org/questions/showthread.php?t=202822
win32 API와 유사한걸 찾으신다면...
x-window 프로그래밍이 있겠네요. kldp wiki에 문서가 있답니다.
Just do it!
윈도우처럼 통일된
윈도우처럼 통일된 API가 있는 것은 아닙니다.
어떤 라이브러리를 이용하느냐에 따라 다르죠.
간단한 예를 들자면,
malloc()같은 일반적인 C 프로그래밍시 제공하는 함수들은 glibc가 담당합니다.
read(), open() 등의 시스템과 밀접한 작업들은 시스템 콜이라는 것이 있는데,
이 부분은 리눅스 커널에서 담당하고요.
(하지만 시스템콜도 사용하기 편하게 glibc에서 wrapping을 해줍니다.)
데탑으로 흔히 쓰는 X윈도우 관련된 그래픽은 X11이고(xfree86, xorg에 있음)
그리고 이 위에서 도는 X툴킷, GTK, QT 등이 있고,
그외에 게임 등등에 사용되는 SDL은 그에 맞는 함수를 제공해 줍니다.
즉 어떤 것을 하기 위해서는 무슨 라이브러리가 필요한지 알아보고,
그것의 사용법을 익히면 됩니다.
이렇게 된데는 리눅스는 윈도우처럼 한 벤더가 통합해서 제공하는게 아니라 여러
사람이 만들어 놓은 여러 가지 프로그램이 서로 연결되서 돌아가는 구조기 때문입니다.
만일 님이 원하는 기능을 구현하는데, 그와 관련된 라이브러리 없다... 그러면 직접 만드는겁니다.
궁금하시면 glibc 같은 라이브러리가 어떤 원리로 돌아가는지 뜯어보는것도 좋고요. 실력 UP에 좋습니다.
Written By the Black Knight of Destruction
Written By the Black Knight of Destruction
댓글 달기