본문 바로가기

프로그래밍(TA, AA)/C C++

(24)
[시스템프로그래밍] IPC D-Bus란? D-Bus란? D-Bus란 프로세스간 통신(IPC)를 위한 시스템입니다. 오픈 소스 소프트웨어로써 리눅스 데스크톱의 프로세스 통신을 위한 수단으로 널리 사용되고 있습니다. 특히 KDE와 Gnome같은 데스크탑 환경에서 중요하게 사용합니다. 구조적으로는 몇가지 계층이 있습니다. - libdbus: Libdbus는 응용 프로그램간의 통신을 가능하게 하는 라이브러리입니다. - message bus damon: DBUS데몬은 실행 파일이며 libdbus를 기반으로 하여 제작되었으며 여러 개의 응용프로그램에서 연결이 가능합니다. 데몬은 버스에 연결된 하나 이상의 프로세스에 라우팅 및 루트 메시지를 처리합니다. - wrapper library 또는 binding: libdbus-glib, libdbus-qt 등 특..
[C C++] 캐리지 리턴(CR)과 라인 피드(LF) 캐리지 리턴(CR)과 라인 피드(LF)는 느린 프린터의 유산입니다. CR은 현재 위치를 나타내는 커서를 맨 앞으로 이동시킨다는 뜻이고, LF는 커서의 위치를 아랫줄로 이동시킨다는 뜻입니다. 이 두 동작을 합치면 뉴라인('\n')과 동일한 동작을 하게 됩니다. 굳이 두 동작으로 나눈 이유는 과거의 느린 프린터가 물리적인 동작을 취하는데 충분한 시간을 확보해주기 위해서 신호를 두개로 나누어 보내주었기 때문이라고 알고 있습니다. 하지만 현재는 둘 중 하나만 있어도 뉴라인으로 간주합니다. 그리고 LF로 뉴라인을 나타내는지 CR+LF로 뉴라인을 나타내는지는 언어의 차이가 아니라 시스템의 차이입니다. Unix-like 시스템에서는 LF로, Windows에서는 CR+LF로 표현합니다.
[Pro*C] Pro*C 프로그램의 구성 Pro*C 프로그램을 코딩하기 위해 기본적으로 숙지해야 할 기초 지식을 앞에서 살펴보았습니다. 실제 Pro*C 프로그램을 작성하기 위해서 어떤 부분이 필요하고, 각 구성 요소 별로 어떤 처리가 필요한지 구체적으로 알아보도록 하겠습니다. Pro*C 프로그램은 큰 맥락에서 보면 2개의 부분으로 구성되어 있으며, 하나는 애플리케이션 프롤로그고, 다른 하나는 애플리케이션 본체입니다. Pro*C 프로그램을 작성하멩 있어 두 부분은 필수적으로 사용됩니다. 애플리케이션 프롤로그 : 변수를 정의하고, Pro*C 프로그램을 위한 일반적인 준비를 수행합니다.어플리케이션 본체 : ORACLE 데이터를 조작하기 위한 INSERT 문이나 UPDATE 문, 데이터를 추출하는 SELECT 문과 같은 SQL 문을 포함합니다. Pro..
[Pro*C] Pro*C 소개와 기본 특징 및 오류 진단 1. Pro*C 소개와 기본 특징 1-1. Pro*C 개요SQL 문은 절차형 언어가 아닙니다. 그래서 오라클을 포함한 많은 데이터베이스는 PL/SQL이라는 절차형 언어를 제공합니다. PL/SQL은 오라클 내부에서 실행되는 프로그램으로서 오라클 내부라는 한정된 공간에서 실행되는 도구입니다. DBMS의 버전이 높아지면서 이전관 다르게 PL/SQL에도 다양한 기능이 추가 되었습니다. 예를 들면, TCP/IP, HTTP, FILE I/O 등과 같은 기능이 추가되어 다양한 방식의 프로그래밍이 가능해졌습니다. 하지만 오라클 외부 프로그램과의 연동 등에 있어서는 많은 제약이 있습니다. 예를 들어, TCP/IP 통신을 하는 PL/SQL 문장을 작성하여 수행하는 중에 메모리 할당 등 예기치 않은 오류로 프로그램이 종료되..
[C/C++] C를 이용한 프로그래밍 01. C언어 소개 C언어는 1970년에 벨 연구소의 톰프슨이 B라는 언어를 만들었고 그후 같은 연구소의 데니스 리치에 의해 C언어가 개발되었습니다. 그는 사용하기 편하면서도 운영체제를 만들 수 있을 정도의 강력한 언어를 만들 수 있을 정도의 강력한 언어를 만들기 원했는데 그의 시도는 성공했고 그 결과물로 C가 탄생하게 되었습니다. C언어는 B언어가 발전한 모습이라고 했는데, B언어 이전에는 CPL이라는 언어가 있었고 이는 ALGOL 언어에서 업그레이드 된 언어입니다. C 언어는 B 언어의 다음이라는 뜻으로 이름이 지어졌는데 언어 개발의 최대 목적은 유닉스 OS를 효율적으로 작성할 수 있는 언어를 만들어보자는 것이었습니다. C는 개발된 이후 유닉스를 비롯한 거의 모든 시스템환경에 포팅이 되어 사용되어 왔..