리눅스 프로그래밍 API??

hjcyj의 이미지

안녕하세요. 리눅스 프로그래밍을 공부하고 있는 학생입니다.
혹시 윈도우즈API같이 리눅스 프로그래밍을 할 때 쓰는 API를 공부할 수 있는 사이트가 있으면
추전 좀 부탁드립니다.
그리고 혹시 윈도우즈프로그래밍에서는 SystemParametersInfo()를 이용하여 바탕화면 이미지를
변경할 수 있던데, 리눅스에서 이러한 기능을 제공해 주는 함수가 존재하는지 알고 싶습니다.
답변 부탁드립니다.

gamdora의 이미지

리눅스*는 윈도우*처럼 데스크탑 체계가 하나가 아니라,

여러 데스크탑 체계(그놈*이나 KDE 등······)가 있기 때문에

바탕 화면 그림을 바꾸려면 데스크탑 체계에 맞는 API를 써야 할겁니다.

어떤 데스크탑 체계를 쓰시나요?

모지리의 이미지

윈도우즈와는 조금 다른 접근법으로 이용하셔야 될겁니다.

윈도우즈의 경우 책이나 API 북을 통해서 손쉽게 원하는 API를 찾아 낼수있지만

*NIX 계열은 가장 훌륭한 메뉴얼은 man page입니다. 조금 하시다 보면 얼추

익숙해질겁니다.

hjcyj의 이미지

그놈이나 KDE 상관은 없습니다.
현재 버튼을 누르면 제가 원하는 이미지로 Desktop Background의 이미지를 바꾸고 싶은데
로그아웃을 한번 했다가 로그인을 다시 하면 바탕화면의 이미지가 바뀌는건 했는데
보통 바탕화면 바꾸기 처럼 바로 갱신이되는 방법을 도저히 찾지 못하여서 그에 따르는 함수가 존재하는지
알고 싶어서 질문을 드렸습니다. 혹시 알고 계신다면 답변부탁드립니다.
답변 감사드립니다^^;

sephiron의 이미지

kde background picture 로 검색하니 아래와 같은 글이 나오는군요. 찾으시던 것이길 바래요.
http://www.linuxquestions.org/questions/showthread.php?t=202822

Quote:
oh, sorry bout that; in that case, xsetbg should do what you need to. do a man on it and you should find what you need.
태훈의 이미지

x-window 프로그래밍이 있겠네요. kldp wiki에 문서가 있답니다.

Just do it!

Necromancer의 이미지

윈도우처럼 통일된 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

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.