목록Unix&Linux/C-Programming (4)
khstar
시작 포인터를 얘기할 때, 꼭 배열이란 것을 다시 언급하게 됩니다. 사실 C에서 포인터(Pointer)와 배열(Array)은 꽤 닮은 점이 있습니다. 결론부터 말하면, 배열이 내부적으로 포인터로 구현되어 있기 때문입니다. 1. 배열(Array) 배열이란 동일한 타입을 가지는 일련의 변수군을 정의한 겁니다. 가령 int A[5]; 이라고 선언하면 정수(int)형 변수 5개를 만들고 그것을 A 라는 하나의 이름으로 통합해서 관리하게 됩니다. 그러면 메모리상에서 배열은 어떤 모습일까요? 일단 배열의 각 원소가 할당받는 어드레스를 살펴봅니다. ──────────────────────────────────────── #include void main() { int A[5]; printf("%d %d %d %d %..
서론 C Language를 공부하면서 가장 이해하기 어려운 것이 무어냐고 물어본다면, 아마도 거의 대부분 "바로 포인터(Pointer)라는 녀석이다!" 라고 말할 것입니다. C에서 다른 건 다 이해가 되어도 "포인터 만큼은 죽어도 모르겠다" 라고 말하는 경우를 제 주변에서도 심심치 않게 봐왔습니다. 사실 C는 어려울 수밖에 없습니다. C를 그저 프로그래밍의 기초 과정에서 배우는 옛날 언어라고 생각하고 가볍게 볼만큼 만만한 녀석이 전혀 아닙니다. C는 어셈블리(Assembly)의 사촌입니다. 다시 말하면, C는 하드웨어 - 특히 마이크로프로세서(CPU)와 친한 녀석입니다. 때문에 하드웨어에 대한 기반 지식없이는 C를 제대로 이해할 수가 없습니다. 포인터라는 녀석이 특히 그렇습니다. C를 강력하게 만드는 무..
select 를 이용하면 여러개의 파일지시자를 동시에 다룰수 있다. 원리는 간단한데, 우리가 관심있어하는 파일지시자의 그룹을 fd_set 이라는 비트배열에 집어 넣고 일정시간마다 이 비트배열에 어떠한 변화가 있는지 확인하는 방법을 사용한다. 우선 이 비트배열에 파일지시자 값을 입력하고, 비트배열의 맴버 값을 초기화 시키고, select 를 적용하면, select 는 해당 파일지시자에 어떠한 상황 (읽을 데이타, 쓸데이타가 있거나 기타 예외 상황)이 발생하면 이를 fd_set 의 비트배열중 해당 파일지시자를 가리키는 비트의 값을 1로 세팅한다. 우리는 나중에 비트배열의 값을 확인해 봄으로써, 어떠한 파일지시자 에 변경이 있었는지 확인할수 있고, 이에 대한 적절한 조치를 취할수 있게 된다. 가장 많이 사용하..
FTP( File Transfer Protocol )의 사용 일반적으로 Windows 98이나 Windows NT, 2000에서는 FTP 프로그램들이 많이 있어서, 프로그램을 내에서 명령어를 치지 않고 마우스로 드래그 앤 드롭을 하면 되지만 Unix나 Linux등의 Telnet 모드에서 FTP를 사용한다고 하면 막히기 쉽상이다. 여기에서는 명령행으로 FTP를 사용하여 화일을 보내고 받는 것을 이야기 하고자 한다. ftp는 리모트 서버측에 ftpd라는 데몬 프로그램이 서비스를 담당한다. ftp의 실행$ ftp remote_ip [port] 여기서 remote_ip는 일반적인 ip가 될 수 있고, 도메인명이 될수도 있다. 일반적으로 ftp 데몬이 사용하는 포트(port)는 21번이다. 명시하지 않으면 디폴트..