c 표준 라이브러리 함수들을 뜯어 보고 싶은데요

chartemp의 이미지

cygwin 깔아서
소스를 볼수 있다는데
정확히 어디에 위치에 있는지
어떻게 볼수 있는지 쫌 갈켜주셧으면 합니다.
검색해봐도 무지해서 그런지 검색방법도 모르겠고 잘 안찾아줘서 질문드립니다;;

jachin의 이미지

일단 위키피디아의 글을 읽어보셨으면 합니다.

http://en.wikipedia.org/wiki/C_standard_library

글을 보신바와 같이, C 언어 컴파일러에서 일반적으로 사용하는 루틴(함수)들을 표준 C 라이브러리라고 합니다.

바꿔 말하면, 'C 컴파일러의 소스코드를 보고 싶다'와 같은 내용입니다.

유료로 배포하는 컴파일러의 소스코드를 공개하는 경우는 거의 없기 때문에,

일부러 자유소프트웨어인 GCC(GNU Compiler Collection)의 소스코드를 보기 위해,

Cygwin을 설치하는 것입니다.

Cygwin 설치 시, 배포 내용 중에 Source Codes 에서 GCC 를 선택하시면,

/usr/src 디렉터리 안에 gcc 버전별로 디렉터리가 생성되어 소스가 들어가 있습니다.

하.지.만.

제 생각엔 너무 코드가 크고, 복잡해서 무엇부터 보셔야 할지 모르실거라 생각합니다.

단순히 표준 C 라이브러리의 헤더파일을 읽으시길 원하시는 것이라면,

/usr/lib 또는 /lib 폴더 안의 헤더파일들을 확인해보시면 될겁니다. :)

익명 사용자의 이미지

C 언어 일주일만 배워도 헤더파일이 /usr/include 밑에 있다는거 알지않나...?

그리고 C 표준라이브러리 소스를 보려고 GCC를 깔라는 개소리는 진짜...

glibc란걸 들어본적도 없는듯...

익명 사용자의 이미지

학원이든 어디든 일주일안에 그런것도 가르쳐주는 곳이 어딘가요?

꼭 다니고싶습니다!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

robin0108의 이미지

리눅스 상에서라면 저분말이 맞아요 님이야말로 하나만 알고 둘은 모르는 분이네요 ㅎㅎ

sangwoo의 이미지

c라이브러리의 구현을 보고 싶어하시는 이유는 잘 모르겠지만, 공부할 목적이시라면 uClibc 같은 거 보시면 좋지 않을까요?
http://git.uclibc.org/uClibc/tree/ 여기서 소스 트리를 보실 수 있습니다.

----
Let's shut up and code.

unsouled의 이미지

glibc 의 소스 코드를 보시면 됩니다.

http://sourceware.org/git/?p=glibc.git;a=tree

jachin의 이미지

오래된 글이 되어서, 별로 신경쓰지 않고 있다가,
최근의 일들이 계기가 되어서 다시 찾아보고 있습니다.

C 표준 라이브러리 함수의 소스코드들은 glibc 패키지 안의 stdlib 디렉터리 안에 있습니다.
이미 위에 두 분이 써주셨기 때문에, 변명밖에 안되겠지만,
오랫동안 소스코드에 떨어져 있던 시기라 소스 위치를 잘 알지 못했었습니다.

많이 불편을 겪으셨다면, 정말 죄송합니다. :)

익명 사용자의 이미지

말은 똑바로 해야지...

소스 위치를 잘 알지 못했던게 아니고 개념이 없었던거겠지...

"
글을 보신바와 같이, C 언어 컴파일러에서 일반적으로 사용하는 루틴(함수)들을 표준 C 라이브러리라고 합니다.
"

wikipedia 링크까지 걸어놓고 이딴 개소리할 정도면 뭐...

나머지 얼빵한 답글들도 시간지나서 묻히도록 냅두는게 본인한테 유리할듯...

근데 더 어이없는건 말야...

glibc 자체가 C 표준 라이브러리를 담고있는 라이브러리지 glibc안의 stdlib 디렉토리 밑에 표준 라이브러리가 있는게 아니거든...

이름이 stdlib라서 요게 표준 라이브러리겠지라고 찍었는데 또 틀렸구나...

개코메디다 진짜...

해명하는것도 틀리냐 어떻게...

jachin의 이미지

미안, 나 찍기밖에 잘 몰라. ㅋㅋㅋ

근데 나 표준이 뭔지 잘 모르겠다... 어디에 있는건데? 좀 알려줘봐.

익명 사용자의 이미지

안쪽팔리냐...

jachin의 이미지

너 근데 로그 남는건 별로 신경 안쓰는거냐?

익명 사용자의 이미지

해명글이라고 쳐올려논것도 틀린게 들통나니까 아주 긴장 타냐...

모르면 답글 달지 말라니까 말귀를 못알아먹네...

jachin의 이미지

난 너와 대화하려고 하는거야.

네가 '모른다'라는 정의는 정확한 사실관계에 의해 증명된 것만을 의미하냐 이거야.
내가 답글을 다는 것 자체가 싫은건지, 잘못된 정보에 대한 답글을 달아두는게 싫은건지 말야.
잘못된 답글을 올리는 것이 싫어서, 일부러 잘못된 답글을 찾으려 읽을 필요는 없잖아?

나는 내 나름대로 추측이나 정보를 답글로 올리는 것도 좋다고 생각하는데,
너는 그것도 싫으냐 하는 얘기지.

익명 사용자의 이미지

딴사람들은 자기가 아는 질문에만 답글을 달지...

근데 하도 개코메디같은 답글을 아는척쩌는 말투로 달아놓으니까 빡쳐서 그런거지...

jachin의 이미지

KLDP에서 답글 달면서 지낸지 10년이 다 되어가.
첨에는 답글달면, 서로 틀리더라도, 무엇이 틀렸고, 잘못됐고 지적하다가 싸우기도 했어.
정말 잘 하는 사람들이 답글써서 한 쪽이 무안해지기도 하지.

헌데말야, 그러고나서 답글 쓰는 사람들이 모두 사라졌어.
정말 잘 하는 사람들은 일이 바빠서 답글같은데 신경 못 쓰거든.
그럼 조금이라도 잘 하는 사람들이 신경써줘야 하는데,
조금이라도 잘 하는 사람들도 기분 상해가면서 답글 남겨주는게 싫은거야.

나는 게시판에 글 쓰는 것이 '잘못된 글'이더라도,
소통할 줄 아는 것이 더 중요하다고 생각해.
이런저런 삽질하면서 리눅스 써보는 것은 이미 많이 하지 않던가?
다른 사람의 조언이 잘못되어서 다른 사람이 삽질하는게 보기 안타까우면,
네가 답글 좀 남겨줘.
넌 시간도 많고 할 일도 적은거 같으니까.

아무튼 너도 수고하고, 트롤이라 불러서 미안해.
일단 말은 통하는 거 같으니까 용서해줄께.

jachin의 이미지

봤던 댓글 또 보고, 또 보면 좋으냐? 좋아? ㅋㅋㅋ

planetarium의 이미지

트롤이랑 이런데서 내용없이 싸우실 필요 없습니다. 저런게 들러붙어있는게 거추장스러운건 알지만 jachin님의 시간은 이런데 쓰기는 아깝습니다. 남들 보기도 좋을게 없구요.

jachin의 이미지

생각하다보니, 트롤이랑은 다른 것 같아서요.
잘 마무리 지어보도록 노력해보겠습니다. :)

익명 사용자의 이미지

모 블로그 사이트에 이런 말이 있죠.
'비로그인의 팔할은 ㅄ다'

여기도 적용되는듯.

익명 사용자의 이미지

남 기분 상하게까지 하면서 태클을 걸어야 하나... 더럽다 진짜.

dlwlalsggg의 이미지

glibc랑 uclibc만 봐서는 모든 C함수의 소스를 볼 수 없어요.

예를들어 printf 소스 같은건 커널에 들어있습니다.

malloc 같은 함수도 분석해보시면 커널을 안볼수가 없게됩니다.

리눅스 커널 소스도 함께 봅시다.

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.