본문 바로가기

About 배우고 익히는법/펌글

(20)
[TCP/IP] signal set 관련 함수 (sigemptyset, sigaddset, sigdelset, sigprocmask) Programming/Etc(펌&자료) 2009/07/12 01:09 #include int sigemptyset(sigset_t * set) set 이 가리키고 있는 시그널 집합을 초기화 한다. 성공시에 0을 return 하고, 실패시에 -1을 return 한다. int sigaddset(sigset_t * set, int signum) set 이 가리키고 있는 시그널 집합에 signum을 추가한다. 성공시에 0을 return 하고, 실패시에 -1을 return 한다. int sigdelset(sigset_t * set, int signum) set 이 가리키고 있는 시그널 집합에 signum을 삭제한다. 성공시에 0을 return 하고, 실패시에 -1을 return 한다. int sigprocmask..
[Linux] 리눅스에서 getch() 사용 키보드 입력을 화면에 출력하지 않고 읽어오는 getch() 에 해당하는 함수가 gcc library 에는 존재하지 않습니다. 따라서 터미널의 설정을 변경하여 터미널 echo와 canonical 모드를 끄고 입력 버퍼를 1로 만든 후 키보드 입력을 읽고 터미널 설정을 원래대로 복원하는 방식으로 구현하여 사용할 수 있습니다. #include int getch(void) { int ch; struct termios old; struct termios new; tcgetattr(0, &old); new = old; new.c_lflag &= ~(ICANON|ECHO); new.c_cc[VMIN] = 1; new.c_cc[VTIME] = 0; tcsetattr(0, TCSAFLUSH, &new); ch = get..
[Linux] linux에서 getch() 및 kbhit() 사용하기 Linux에서는 함수 getch() 및 함수 kbhit()가 존재하긴 한다. 헤더파일도 conio.h로 주어지고 있고... 문제는 일반 컴파일러가 아니라 보드용 컴파일러, 즉 PC 환경이 아니라 임베디드 환경에서 작업할 때는 위의 헤더인 conio.h가 거의 주어지지 않는다. 따라서 getch() 및 kbhit() 를 사용하기 위해서는 직접 만들어 써야 한다는 어려움이 있다. 그래서 여기에 이와 동일한 작업을 하는 함수를 만들어 본다. 1. linux_kbhit.h 헤더 파일 #ifndef LINUX_KBHIT_H_ #define LINUX_KBHIT_H_ #include #include #include int linux_kbhit(void) { struct termios oldt, newt; int c..
[Linux] Serial-Programming 2. 시작하기 2.1 디버깅 코드를 디버깅하는 가장 좋은 방법은 또 하나의 리눅스 박스를 셋업하고 두 리눅스 박스를 null-modem 케이블로 연결하는 것이다. Miniterm 프로그램을 이용하여 문자들을 전송해보라. Miniterm은 컴파일하기도 쉽고, 키보드에서 입력되는 문자들(특수문자 포함)을 시리얼 포트로 전송할 수 있다. 컴파일할 때 체크해야 할 것은 #define MODEMDEVICE "/dev/ttyS0" 문장이 제대로 설정되어 있는가 하는 것이다. COM1으로 맞추려면 /dev/ttyS0, COM2로 하려면 /dev/ttyS1으로 수정한다. 테스팅을 할 때 가장 중요한 것은 문자가 시리얼 포트로 출력될 때 데이터가 출력 데이터 처리(output processing)을 하지 않고 그대로(r..
Linux] NCURSES란 ? NCURSES란 ? 텍스트모드에서 Window, Panel, Menu, Mouse, Color등을 쉽게 사용할 수 있도록 도와주는 라이브러리입니다. curses라이브러리도 거의 같은 역할을 합니다. ncurses는 curses의 새로운 버전입니다.(new curses) NCURSES설치? NCURSES는 LINUX 라이브러리 이며, 현재 최신 버전의 리눅스의 경우 gcc같은 개발프로그램 설치시 자동으로 설치됩니다. NCURSES를 사용하려면? #include //소스파일 안에 추가 컴파일시 gcc 소스파일네임 -lncurses NCURSES FUNCTIONS $설정 및 초기화 관련 함수 ♦initscr() curses모드를 시작한다. curses를 사용하기 위해 반드시 써줘야 한다. ♦endwin() c..
[Linux] NCURSES 프로그래밍 차례 1절. ncurses 는 무엇인가 2절. ncurses 프로그래밍 2.1절. ncurses 기본 이해 2.1.1절. 기본 구성요소 2.1.2절. 함수 이름 규칙 2.2절. 초기화 및 종료 2.3절. 색상(Color) 2.4절. 화면 업데이트 2.5절. 윈도우(Window) 2.5.1절. 윈도우 생성,이동,삭제 2.5.2절. 윈도우주위에 테두리 만들기 2.6절. 키보드 제어 2.6.1절. Function Keys 2.6.2절. 방향키및 특수키들 2.7절. 문자출력 2.7.1절. 형식화된 문자열 출력 2.7.2절. 문자/개행 출력 2.7.3절. 문자/개행 삭제 2.7.4절. Boxes 와 Line출력 2.8절. 입력 2.8.1절. 문자 / 문자열 입력 2.8.2절. 형식화된 입력 3절. 간단한 예제 1..
[Linux] shmat - 공유메모리 관리 연산 'Programming/Etc(펌&자료)'에 해당되는 글 61건 2009/08/04 [C] [#ifdef~#endif] [#ifndef~#endif] 2009/07/26 [C] 포인터를 쓰는 이유 2009/07/26 [C] C언어에서 특정폴더의 파일을 모두 읽어서, 리스트를 만드는 함수가 따로 있나요? 2009/07/26 [C] 쉬프트연산을 통한 압축문제 2009/07/26 [C++] enum 의 적절한 활용 (2) 2009/07/26 [C] C언어 char 형 배열이 한글(unicode)을 어떻게 인식할까? 2009/07/20 [Linux] signal 다루기 3 (1) 2009/07/19 [Linux] signal 기초 -1 2009/07/15 [Linux] NCURSES Programming HOW..
[Linux] shmget - 공유메모리 영역을 할당 1장. shmget(2) 차례 1.1. 사용법 1.2. 설명 1.3. 시스템 호출에 대한 반응 1.4. 반환값 1.5. 에러 1.6. 예제 1.7. 참고문헌 공유메모리 영역을 할당한다. 1.1. 사용법 #include #include int shmget(key_t key, size_t size, int shmflg); 1.2. 설명 shmget()은 주어진 인자 key를 접근번호로 하는 공유메모리 공간할당을 커널에 요청한다. 커널에서 성공적으로 공유메모리 공간을 할당하게 되면 공유메모리를 가르키는 식별자를 리턴하게 된다. 생성될 공유메모리 공간의 크기는 size를 통해서 byte 단위 크기로 지정할 수 있다. 공간의 할당은 shmflg가 IPC_PRIVATE이거나 key 를 가지는 공유메모리영역이 존재하..