본문 바로가기

UNIX_LINUX_C_C++

(114)
select 함수를 이용한 채팅 서버 /*select 함수를 이용한 채팅 서버*/#include "/home/jinyedge/lib/c/edge_lib.h" #include "/home/jinyedge/lib/c/edge_linux.h" /*-----------------------*/ #define BUF_LEN 2048 #define MAX_GUEST 20 typedef struct _Guest{ char name[20]; int sock; } Guest; typedef struct _Lobby{ Guest *guest[MAX_GUEST]; int n_guest; int guest_cnt; } Lobby; /*-----------------------*/ fd_set read_fds; Lobby lobby; /*--------------..
날짜,pthread,도메인 /*strftime, strptime.get_ip_cls*/#include int main(){ char buf[200] = ""; time_t now = 0; struct tm *t = NULL; //strftime. now = time(NULL); t = localtime(&now); strftime(buf, 20, "%Y/%m/%d %H:%M:%S", t); puts(buf); //strptime. strptime(buf, "%Y/%m/%d %H:%M:%S", &t); sleep(3); strftime(buf, 20, "%Y/%m/%d %H:%M:%S", t); puts(buf); return 0; } /*날짜 관련 함수 예제*/ #include "/home/jinyedge/lib/c/edgelib..
[펌] C 에서의 문자열 C 에서의 문자열C는 원칙적으로 문자를 문자객체로 다루지 않는다. 애시당초 문자열이란게 존재하지 않으며, 배열로 다룰 뿐이다. 그러므로 우리는 포인터 혹은 배열첨자를 통해서 문자열을 다루어야 하는데, 포인터를 다루어본사람은 알겠지만, 포인터를 통해서 문자열을 다루는 작업은 매우 짜증나는 작업이며, 또한 많은 시간이 투자되는 작업이다. C에는 이러한 작업을 대신해줄 많은 함수들이 제공되는데, 대부분 "string.h" 헤더파일에 선언되어 있다. 함수설명에 들어가기 전에strcpy, strcat 같은 함수를 쓰지 않는게 좋다. strncpy, strncat 와 같이 이름에 "n"을 가지고 있는 함수들을 선택하는게 좋다. 이유는 strcpy, strcat 등등의 함수는 얼마만큼의 문자열이 사용될지 그 크기를 ..
[펌] str error result [ 0] Success [ 1] Operation not permitted [ 2] No such file or directory [ 3] No such process [ 4] Interrupted system call [ 5] Input/output error [ 6] No such device or address [ 7] Argument list too long [ 8] Exec format error [ 9] Bad file descriptor [ 10] No child processes [ 11] Resource temporarily unavailable [ 12] Cannot allocate memory [ 13] Permission denied [ 14] Bad address [ 15] Blo..
[joinc] fcntl 을 이용한 파일/레코드잠금 Docbook 원문 잡담 fcntl의 다른 전반적인 내용들에 대해서 알아보도록 한다. 시그널 발생 및 다른 프로세스로의 통보 방법들에 대해서 확인하도록 한다. 특히 다른 프로세스로의 이벤트 통보는 프로세스간 파일 공유에 있어서 유용한 방법이 될 수 있을 것 같다. fcntl 을 이용한 파일/레코드잠금윤 상배dreamyun@yahoo.co.kr 차례 1절. 소개 2절. 왜 레코드 잠금이 필요한가. 3절. fcntl 잠금 4절. 파일잠그기와 레코드 잠그기 4.1절. 파일잠그기 4.2절. 레코드 잠그기5절. 권고 잠금과 필수 잠금1절. 소개예를 들어 DB와 같은경우에는 단지 파일잠금을 하는이외에, 파일의 일정부분을 잠그는 레코드 잠금 기능을 필요로 한다. 유닉스에서는 이러한 레코드 잠금을 위해서 fcntl(2..
[공유메모리] 큐 구성을 통한 효과적인 데이터 처리 프로세스 구현 출처: http://www.joinc.co.kr/modules/moniwiki/wiki.php/article/%B0%F8%C0%AF%B8%DE%B8%F0%B8%AE%BF%CD_%BC%BC%B8%B6%C6%F7%BE%EE%B8%A6_%C0%CC%BF%EB%C7%D1_%C7%C1%B7%CE%BC%BC%BD%BA%B0%A3_%B5%A5%C0%CC%C5%CD%C3%B3%B8%AE#s-1공유메모리 큐 구성을 통한 효과적인 데이터 처리 프로세스 구현 Contents1 소개 2 공유메모리를 이용한 프로세스간 데이터 공유 2.1 데이터 공유시 발생 가능한 문제 2.2 문제해결을 위한 다양한 제안 2.2.1 공유메모리 + 세마포어 2.2.2 공유메모리 + 생산자 통지 2.2.3 *** 공유메모리 + 파일 레코드 잠금 *..
[펌] C언어로 작성된 코드 모음 C 코드 모음 가 나 다 라 마 바 사 아 자 타 파 하 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9 A이름제목변경일크기atox2005/11/28 17:24884B이름제목변경일크기blowcryptblowfish 알고리즘을 이용한 데이터 암호화 2006/02/14 10:534571base642005/03/23 12:2912076bitmap2005/06/20 13:4253499bitblit2005/06/17 17:553434C이름제목변경일크기copy2005/01/07 11:112757crc322005/01/07 11:114143char2hex2005/05/27 10:43702connectWithTimeout2005/07/19..
[펌] 프로그램이 이미 떠있는지 확인 Damon(12) 프로그램을 만들다 보면, 이전에 동일한 프로세스가 떠있는지 확인을 해서, 떠있을 경우 바로 프로그램이 종료되도록 하는 코드를 넣어야할 필요가 있습니다. 이러한 경우 사용가능 한 간단한 함수 입니다. 다음과 같은 프로세스로 작동합니다. 이 코드는 리눅스(12) kernel(12) 2.6에서 테스트되었습니다. 아마도 2.2, 2.4에서도 잘돌아갈 것으로 생각됩니다. +------+ | 시작 | +------+ | +------------+ | Pid | | 파일 체크 | +------------+ | +-----------------------+ Yes | Pid 파일이 존재하는가 | ---------> 종료 +-----------------------+ | NO | +-----------..