Home Page
  Joinc
RSS 구독
   Joinc Teamblog
TIP
카테고리
  전체 (2237)
   alones (656)
   정의의소 (57)
   minsu (88)
   minzkn (318)
   SUN+MOON (50)
   yundream (461)
   decawoo (225)
   hkpco (99)
   sunnmoon (14)
   thedino (143)
   yubi (18)
리눅스 환경에서의 C 프로그래밍
개인적으로 진행하고 있는 리눅스 환경에서의 C 프로그래밍 문서 프로젝트를 위한 채널입니다. 한권의 온라인 문서를 만드는 것을 목적으로 하고 있습니다. 프로젝트 위키는 Joinc Wiki 입니다.

트랙백 주소는 http://teamblog.joinc.co.kr/CLinuxProg/trackback/1 입니다.

카테고리 사이트 바로가기
글쓴이 : hkpco
2008/10/29 수요일 17:33:00
카테고리 :
ANSI-C 환경에서 제공되는 getch() 함수를 구현해 보았습니다. 원래는 getch() 함수를 두 번호출하면 확장 아스키를 구할 수 있지만 여기서는 오직 1byte의 입력을 받는 최소한의 기능만을구현하였습니다.code link - http://hkpco.kr/code/hk_getch.c.txt/*             
글쓴이 : hkpco
2008/02/14 목요일 02:15:00
카테고리 :
/* vmsplice() system call 사용 설명과 예제 by hkpco(박찬암), hkpco@korea.com, http://hkpco.kr/ wowhacker&wowcode, 2008. 2. 14*/linux kernel 2.6.17 에서 부터 추가된 vmsplice() 시스템 콜에 대하여 알아보겠습니다.vmsplice() 관련 취약성도 발표된 참에 어떠한 함수인지를 살펴보는것도 나쁘지 않을 것입니다.비교적
글쓴이 : (yundream)
2007/11/07 수요일 10:46:00
카테고리 :
약 5년전에 만들어진 문서를 좀 가다듬어서 포스팅 합니다.만약 5개의 쏘쓰로 이루어진 프로그램을 테스트 하기 위해서 컴파일을 한다면 다음과 같은 방식을 사용해야 할것이다. $ gcc -c 1.c $ gcc -c 2.c $ gcc -c 3.c $ gcc -c 4.c $ gcc -c 5.c $ gcc -o myprg 1.o 2.o 3.o 4.o 5.o 매번 myprg 라는 실행파일을 만들어 내기 위해서 위의 방식대로 컴파일 하는건 보통 일이 아니다. 그..
글쓴이 : (yundream)
2007/10/30 화요일 08:23:00
카테고리 :
C코드를 HTML로 변환 시키는 간단한 프로그램을 만들어 봤습니다. 하일라이팅은 아니고, 정규표현을 이용해서 함수라고 판단되는 문자열은 man page로 링크를 걸어주는 프로그램입니다. 대략 a-zA-Z0-9+( 의 패턴을 가지는 문자열을 함수로 간주하게 됩니다. 링크는 joinc man page에 있는 함수를 찾도록 되어 있습니다. 만약 등록된 함수가 없다면 google 개인화 검색 으로 넘어갑니다. man page를 기준으로 하기 때문에, 유닉스..
글쓴이 : (yundream)
2007/09/11 화요일 10:37:00
카테고리 :
마치며 어쨋든 입문서라고 할만한 리눅스 환경에서의 C 프로그래밍을 끝마쳤다. 그렇다고 해서 완전한 문서는 아니다. 글쓰는 스타일이 일단 빠르게 완성하고 나서, 나중에 다시보자 하는 스타일이기 때문에, 부족한점이 많을 거라 생각한다. 지금 언뜻 생각해도, 구조체 설명하면서 union을 빼먹었고, 매크로 문에 대한 설명등 빼먹은게 생각이 난다. 이 부분들은 차차 완성해 나갈 계획이다. 어쨋든 이걸로 리눅스 환경에서의 C 프로그래밍 Ver 1.0을 완성한..
글쓴이 : (yundream)
2007/08/20 월요일 10:39:00
카테고리 :
Hello World 다시 보기 hello world 프로그램을 다시 한번 보기로 하자. #include <stdio.h>int main(int argc, char **argv){ printf("Hello World!!!\n"); return 1;} 위 프로그램을 자세히 뜯어보면, #include문이 보일 것이다. 이것이 어디에 쓰는 물건인지 자세히 알아보도록 할 것이다. 우리는 7장 함수편에서 함수에 대해서 다루었다. 이를 통해서 우리는..
글쓴이 : (yundream)
2007/08/02 목요일 01:09:00
카테고리 :
이 문서는 수정될 수 있습니다. 최신문서는 Joinc Wiki에서1 메모리 현대적인 컴퓨터는 입력, 연산, 출력의 3가지 과정이 분리되어 있다. 이는 인간의 생각하는 구조와 비슷하다. 여러분의 눈앞에 날아 들면, 눈으로 이를 확인하고 (입력), 뇌로 전달해서 고민을 한다음 (연산), 눈을 감을 건지 얼굴을 돌릴건지를 결정 (출력) 하게 될것이다. 이때 모든 정보는 뇌로 전달되어서, 뇌의 특정부위에 저장된후에 처리됨을 알 수 있다. 컴퓨터 역시 키보드..
글쓴이 : (yundream)
2007/07/30 월요일 13:20:00
카테고리 :
1 원시데이터 타입 C 언어는 매우 기본적으로 사용하는 5가지 정도의 원시 데이터 타입이라는 것을 가지고 있다는 것을 앞서 배웠다. 이들 기본 타입은 다음과 같은 것들이다. int, float, double, char, long long int, Pointer 인간이 다루는 매우 복잡한 데이터들도 숫자와 문자, 도형 이라는 걸 생각하면 컴퓨터가 이렇게 단지 몇가지만의 데이터 타입을 가지는 것도, 어찌보면 당연한 결과라고 할 수 있을거 같다. C 언어..
글쓴이 : (yundream)
2007/06/26 화요일 18:01:00
카테고리 :
문제 풀이 8장의 1번 문제를 풀어보도록 하자. hello world를 찍는 문제였다. char 하나에는 하나의 문자만 들어갈 수 있으므로 공백문자까지 포함 11개의 char를 선언해서 사용해야 한다. #include <stdio.h>int main(int argc, char **argv){ char h='h'; char e='e'; char l='l'; char o='o'; char w='w'; char d='d'; char r='r';..
글쓴이 : (yundream)
2007/06/25 월요일 14:54:00
카테고리 :
우리는 5장에서 데이터 타입에 대해서 간단히 알아보았다. 여기에서는 이들 데이터 타입에 대해서 좀더 자세히 알아보도록 할것이다. 1 Data Types 우리가 사용하는 데이터는 컴퓨터의 메모리에 연속된 비트의 나열로 저장이 된다. 이러한 비트의 나열은 컴퓨터입장에서는 문제가 안되겠지만 인간의 입장에서는 알아보기 힘들다는 문제가 발생한다. 그래서 데이터 타입을 두어서 인간이 좀더 쉽게 사용할 수 있도록 하고 있다. 데이터 타입은 다음과 같은 특징을 가..
글쓴이 : (yundream)
2007/06/23 토요일 03:47:00
카테고리 :
1 함수 함수는 어떤 일을 처리하는 단위로 function 혹은 subroutine라고 부른다. Pascal과 같은 언어에서는 procedure라고 부르기도 하는데, 용어만 다를 뿐 의미하는 바는 같다. 함수는 특정한 연산을 encapsulate(캡슐화) 해서 프로그램을 구조적이고 단순하게 만들 수 있도록 도와 준다. 예를 들어서 당신이 만든 프로그램이 일정한 범위의 숫자를 더하는 연산을 여러번 한다고 가정해 보자. 그러면 다음과 같은 코드를 만들..글
글쓴이 : (yundream)
2007/06/22 금요일 17:06:00
카테고리 :
1 소개 이번 장에서는 C 프로그램에서 사용되는 여러가지 종류의 흐름제어(Control of flow)어 알아보도록 하겠다. 흐름제어는 주어지는 조건에 따라서 프로그램의 흐름을 제어하기 위한 목적으로 사용된다. 간단한 예로 성인인증을 위한 프로그램을 만든다고 하면, 나이를 기준으로 18세 이하면, 경고메시지를 출력하게 하고, 18세 이상이면 ok 사인을 보내는 등의 흐름제어가 필요하다. 위의 이미지를 보면 알겠지만, 흐름제어를 위해서는 참과 거짓을..글
1장. socket(2)차례1.1절. 사용법1.2절. 설명1.3절. 반환값1.4절. 에러1.5절. 예제통신을 위한 종점(endpoint) 을 생성하고, 이에 대한 파일지정자를 반환한다. 1.1절. 사용법 #include <sys/types.h>#include <sys/socket.h>int socket(int domain, int type, int protocol); 1.2절. 설명 통신을 위한 종점(endpoint)를 생성하기..
글쓴이 : (yundream)
2007/06/22 금요일 04:49:00
카테고리 :
1 소개 C언어를 이용해서 프로그램을 만드는 이유는 입력받은 데이터를 가공하거나 연산해서 결과물을 출력받기 위함이다. 이 데이터는 인간의 관점에서 보자면, 문자혹은 문자열일 수도 있고, 숫자일 수도 있다. 숫자라면 정수일 수도 있고, 소수점을 가진 숫자일 수도 있다. 혹은 이들 데이터의 묶음일 수도 있다. 1.1 컴퓨터는 모든 데이터를 bit 로 본다 그러나 인간이 데이터를 숫자, 문자, 문자열등 다양하게 구별하는 것과는 달리 컴퓨터는 모든 데이터를..
글쓴이 : (yundream)
2007/06/18 월요일 07:10:00
카테고리 :
1 변수와 연산자 1.1 C에서 사용되는 문자들 인간이 쓰는 언어의 숫자만 해도 아마 100여개가 넘을거라고 생각된다. C언어는 기계어를 대신해서 사용할 수 있도록 인간의 언어로 쓰여진 프로그래밍 언어인데, 그렇다면 인간의 언어중 어떤 언어를 사용하고 있을까. 답은 영어다. 컴퓨터라는 기계가 영어문명권에서 발명이 되다보니, 컴퓨터에서 프로그램을 만들기 위해 사용한 C언어도 자연스럽게 영어 알파벳을 기본 문자로 사용하도록 만들어 졌다. - 한글로된 컴..
글쓴이 : (yundream)
2007/06/14 목요일 04:39:00
카테고리 :
이 문서는 수정될 수 있습니다. 최신문서는 Joinc Wiki에서 확인하세요. 1 Start C Linux환경이 대략 구축되었으니, 이제 C언어 개발환경을 구축해 보도록 하자. 대부분의 Linux 배포판이 설치되는 즉시 완전한 개발환경을 구축해줄 테니, 본문의 내용을 읽고 확인하는 정도면 될 것이다. 물론.. 어떤 리눅스 배포판을 사용하고 있던지 간에, 패키지관리 툴정도는 다룰 수 있을 정도는 되어야 할 것이다. 1.1 필요한 요소 개발환경을 위해서..
글쓴이 : (yundream)
2007/06/12 화요일 15:09:00
카테고리 :
이 문서는 수정될 수 있습니다. 최신문서는 Joinc Wiki에서 확인하세요. 1 Linux 와 C 최초에 C는 시스템 프로그래밍을 위한 언어로 개발되었으며, 상업적및 학습적인 용도로 성공한 최초의 운영체제라 할 수 있는 Unix운 영체제를 만드는 데에 사용되었다. 한마디로 Unix와 C는 뗄레야 뗄 수 없는 관계인 것이다. 이견이 있을 수 있지만 운영체제의 선조격인 Unix를 이해하는 것은 컴퓨팅환경을 이해하는 가장 좋은 방법이며, Unix를 이해..
글쓴이 : (yundream)
2007/06/12 화요일 05:15:00
카테고리 :
개인 문서 프로젝트로 시작합니다. 한권의 C 입문서를 만드는 것을 목적으로 합니다. 시간이 얼마나 걸릴지는.. 장담할 수 없습니다. -.-;현재 8장까지 진행이 된 상태입니다. 블로그로 포스팅하게 되면, 아무래도 속도도 좀 붙겠지요. 최신 문서는 Joinc Wiki에서 확인하실 수 있습니다. 소개 컴퓨팅 환경이 지금에 이르게 된 가장 결정적인 원인을 제공한 것은 C라는 언어의 출현이 될것이다. C언어 덕분에 지금의 현대적인 컴퓨팅 환경이 갖추어졌다고..
< 1 >