C 언어 학습깊이 질문 ( 임베디드 분야 )

wone28의 이미지

임베디드 프로그래머 코딩 면접을 보면 memcpy 구현을 물어보던데. ( 예외처리 관련하여 물어보려고 한것 같습니다. )

함수 구현이 C 언어 문법만으로만 작성하는것을 의미 하는것인지 궁금하고.

printf 구현 하는걸 보니 저랑 생각한것이랑 다르더라구요. 저는 내부적으로 printf 는 시스템콜 write 를 stdout에

쓰는것으로 알고있었는데

단순 표준라이브러리 함수 사용법만 익히고 있었는데, 학습방법을 어떻게 해야할지 고민이 큽니다. 함수를 내부적으로

더 파헤칠지 아니면 오픈소스 분석 쪽으로 힘을 기울일지 질문입니다.

라스코니의 이미지

소스가 공개되어 있는 간단한 Embedded OS를 분석해 보심이...
내용 자체가 아니라 코드가 어떻게 구성되어 있는지 궁금하신 거잖아요?
uCos, FreeRTOS 등의 코드 및 드라이버 코드를 보시면 도움이 되실 것 같네요.

세벌의 이미지

그 질문은 면접관에게 하셔야 할 듯.

bushi의 이미지

byte 단위 복사 대신할 수 있는 더 빠른 방법의 존재여부를 인지하고 있는지 감별하기 위한 질문이거나,
피치못하게 조악한 환경에서 돌아갈 수 밖에 없는 임베디드 환경의 특성상, memcpy() 가 memmove() 처럼 동작해야 할 예외에 대해 인지하고 있는지 감별하기 위한 질문이라 생각합니다.

> 저는 내부적으로 printf 는 시스템콜 write 를 stdout에
> 쓰는것으로 알고있었는데
>
그런 POSIX OS 는 없을 겁니다. write() 는 FILE stream 이 아니라 file descriptor 를 접근해야만 합니다.
조악한 embedded 환경에서도 마찬가집니다. write() 대신 다른 함수를 호출하고, 보통 그 함수는 UART 데이타 레지스터에 byte 전송하는 정도의 차이일 뿐이고요.
그 앞 단의 vprintf() 는 지원하는 기능의 갯수 정도 차이를 제외하면, 조악한(최소한 sprintf 정도 지원하는) embedded 환경이나 럭셔리한 rich OS 환경이나 거기서 거기입니다.

댓글 달기

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