전체 글 144

strcpy()함수

char *strcpy(char *destination, char *source); 함수 strcpy()는 source가 가리키고 널 문자를 포함하는 문자열을 destiation이 가리키는 곳으로 복사한다. 복귀 값은 새로운 문자열 destination 에 대한 포인터이다. strcpy() 를 사용할 때는 우선 목적 문자열을 저장하기 위한 영역을 할당해야 한다. 함수는 destination이 이미 할당되어 있는 영역인지 알 수 없다. 메모리 영역이 할당되지 않았다면 함수는 destination에서부터 시작해서 strlen(source)만큼의 메모리 영역을 덮어쓸 것이다. 이것은 에상할 수 없는 문제를 일으킬 수 있다. 1 : #include 2 : #include 3 : #include 4 : char ..

Backend/C 2012.04.12

Hello, World!

1 : #include 2 : void main(){ 3 : printf("Hello, World ! "); 4 : } 항상, 모든 C 언어 제일 첫 과에 나오는 코드이죠. 간단해 보이지만 저 4줄의 코드에는 많은 의미가 있답니다. 우선 첫번째 라인의 소스를 볼까요, #include 라고 표시되어 있습니다. include 는 영어 사전에서 찾아보면 "포함하다" 라는 뜻을 가지고 있습니다. 이 1번 라인에서는, "stdio.h라는 헤더 파일을 포함하라" 라는 의미가 되겠지요. 자, 그럼, stdio.h는 무슨 파일 일까요?? stdio.h의 stdio는 "standard input and output" 의 약자이고요, stdio.h는, "C에서 표준 입출력을 제공해주는 Library들이 모여있는 선언파일"..

Backend/C 2012.04.12

About C Language

Wiki 의 내용 벨 연구소에서 1971년경부터 리치(D.M.Ritchie) 등에 의해서 설계 개발된 시스템 기술용의 프로그래밍 언어이다. UNIX 오퍼레이팅 시스템의 기술에 사용할 것을 목적으로 설계한 언어로 UNIX OS의 대부분이 이 언어로 개발되었다. 컴퓨터의 구조에 밀착한 기초 기술이 가능한 것과 간결한 표기가 될 수 있는 것 등을 특징으로 하고 있다. 시스템 기술(記術)용 언어의 경우에는 기억장치의 주소(어드레스) 등과 같은 하드웨어 자원까지 기술(記術)의 대상으로 할 것을 요구하고 있는데, C언어에서는 이러한 수준의 개념을 데이터 형이나 함수 등의 고수준 언어의 개념에 잘 대응하고 있다. 따라서 언어의 성격상 일반적인 범용의 언어와 거의 다를 바가 없다. 프로그램을 다른 종류의 컴퓨터에 이식..

Backend/C 2012.04.12

ObjDump 사용하기

일을 하면서 정말 유용하게 쓰이는 명령어중 하나가 objdump 이다. 특히 프로그램이 core 파일을 생성하고 죽었을때, 그 core 파일에 정확한 함수명이 나타나지 않거나 찾기 힘든 경우, 이 objdump를 생성하여 해당 프로그램의 함수별 주소값을 찾아 프로그램이 죽은 시점을 쉽게 파악할 수 있다. 뭐, 이외에도 objdump는 다양한 용도로 사용될 수 있겠지만 :) 일단 man 페이지를 보면 .. > man objdump OBJDUMP(1) GNU Development Tools OBJDUMP(1) NAME objdump - display information from object files. SYNOPSIS objdump [-a│--archive-headers] [-b bfdname│--targ..

Backend/OS★ 2012.04.12

glib의 간단한 사용법

리눅스 개발자 및 엔지니어라면 누구나 GNOME 에 대해서 들어봤을 것이다. GNOME은 리눅스 사용자들에게 UI 및 데스크탑 어플리케이션을 제공하는 프로젝트라 할 수 있다. 따라서 윈도우만 쓰던 유저도 이 GNOME을 이용해 리눅스를 윈도우처럼 편하게 쓸 수 있다고 한다. (난 검은창만 써서..ㅋㅋㅋㅋ) 단지 UI뿐만 아니라, 워크나 스프레드 시트, 브라우저 등등의 유용한 어플리케이션도 제공한다. 오늘 포스팅할 내용은 이 GNOME 에서 만든 Glibc에 대한 것이다. Glib에는 개발자가 직접 만들지 않아도 쉽게 가져다 쓸 수 있는 유용한 라이브러리가 많이 있다. 나도 팀장님이 추천해 주셔서 이 사이트를 알게 되었는데, 사용해보니 쉽고 간단하다. Glib 페이지 바로가기 지금 나와있는 최신 버전인 2..

Backend/C 2012.04.12

Memmove

너무 오랫만에 쓰는 C언어 포스팅이넹.. 오늘 개발 하다가.. memmove라는 함수를 사용하게 되었는데 까먹지 않기 위해서^^; 급 포스팅!! 사실 memory 관련 함수는 memcmp, memcpy 등만 사용했는데 이번에 memmove라는 함수도 있다는걸 알았다. 우선 MAN 페이지를 보면.. 다음과 같이 나온다 NAME memmove - copy memory area SYNOPSIS #include void *memmove(void *dest, const void *src, size_t n); DESCRIPTION The memmove() function copies n bytes from memory area src to memory area dest. The memory areas may ove..

Backend/C 2012.04.12

jQuery로 cookie 다루기

jQuery로 쿠키를 다루는 코드를 찾아봤는데.. 구글에서 검색해도 정확하게 나오는 것이 없어서.. 내가 간단히 정리했음.ㅎㅎ 우선 필요한 파일은 jquery-min.js jquery.cookie.js 요 두가지는 인터넷에서 쉽게 받을 수 있다. 다음은 샘플 코드. >cookie.php set_cookie 함수를 작성해 주었고 이 곳에 cookie를 저장하는 함수를 만들었다. 그리고 매개변수를 이용해 post로 cookie의 값을 ok.php로 넘겨주도록 하였다 ok.php 파일에서는 $_POST['cookie'] 값이 cookie로 전달되게 된다. 간단한 소스이므로 누구나 테스트하기 쉬울듯~!! ㅎㅎㅎ 위의 소스에서 볼 수 있듯이, jquery.cookie.js 를 사용할 경우는 다음과 같이 $.coo..

RADIUS(Remote Authentication Dial In User Service)

RADIUS(Remote Authentication Dial In User Service) RADIUS 는 인증 방식의 하나로, 시스템 내부에서 인증하는 것이 아니라 RADIUS 서버를 두고, 그 서버에 인증 요청을 보내어 서버에서 인증 대상을 인증한 뒤, 응답을 보내주는 형식으로 동작한다. 주로 무선 네트워크, 일반 네트워크 및 통합 메일 서비스 등에서 사용되며 UDP를 사용해 통진하는 응용 계층의 프로토콜이라 할 수 있다.  이 RADIUS에는 3가지 주요 기능이 있다.AAA라고도 하는 이것은, Authentication, Authorization, Accounting 을 의미한다. Authentication은 네트워크에 엑세스하는 사용자(또는 단말)를 인증하는 것을 의미한다. 그리고 Authori..

Openssl 사용하기

Openssl - Openssl은 오픈 소스 프로젝트로 SSL (Secure Socket Layer) v2, v3 그리고 TLS (Transport Layer Security) v1 프로토콜 라이브러리 및 각종 암호화 라이브러리를 지원하는 툴이다. openssl 라이브러리를 사용하면 암호화된 소켓 통신, 데이터의 암호화 및 복호화, 데이터 무결성 검사 등의 기능을 구현할 수 있다. 라이브러리 (소스 파일)는 다음 사이트에서 다운받아 설치하면 되고, 최신 버전은 현재 1.0.0 이다. 소스 다운받기 소스를 다운받아서 압축을 풀면 >tar xvzfp openssl-1.0.0d.tar.gz 다음과 같이 폴더가 생성되는데, 이 폴더 안에 소스 코드들이 들어있다. > pwd /root/openssl-1.0.0d..