프로그램언어/C/C++ 썸네일형 리스트형 Posix Thread Example 1 Posix Thread Example 작성자: mwyun(멍) 쓰레드 생성후 자동 종료하는 간단한 예제입니다. 2 pthread 예제1 2.1 pthread1.c 소스코드 #include #include #include pthread_t threads[5]; int done[5]; void *thread_main(void *); int main(void) { int i; int rc; int status; printf("pid=%d\n", getpid()); for (i = 0; i < 5; i++) { done[i] = 0; pthread_create(&threads[i], NULL, &thread_main, (void *)i); printf("%d, %d\n", i, threads[i]); } f.. 더보기 pthread server 예제 server.c #include #include #include #include #include #include #include #include #include #define BUFSIZE 100 void *clnt_connection( void* args ); void send_message( char* message , int len ); void error_handling( char* message ); int clnt_number = 0; int clnt_socks[10]; pthread_mutex_t mutx; int main( int argc , char** argv ) { int serv_sock; int clnt_sock; struct sockaddr_in serv_addr; struct .. 더보기 컴파일 과정 & gcc 옵션 요약 -o 옵션 : gcc에서 만들 실행 파일명을 정하는 것. 안지정하면 a.out %gcc -o filter filter_driver.c define_stack.c global_var.c -c 옵션 : 컴파일하지만 링크하지는 않는 다는 것을 의미 %gcc -c filter_driver.c -D 옵션 : 소스코드의 #define 문과 같다. 심볼에 대한 값을 지정 % gcc -c -DDOC_FILE=\"info\" -DUSE_POLL filter_driver.c 첫 번째 -D 옵션은 DOC_FILE 을 info 라는 문자열로 대치한다는 것 두 번째 -D 옵션은 USE_POLL 심볼을 정의한다. -I 옵션 : 헤더파일이 위치한 디렉토리 지정 % gcc -c -I../headers filter_driver.c -.. 더보기 Pthread API Reference Pthread API Reference윤 상배 고친 과정 고침 0.9 2004년 6월 30일 12시 pthread 취소관련 api 추가 고침 0.8 2003년 10월 9일 12시 pthread 시그널 관련 api 추가 차례1. 소개2. 기본 쓰레드 함수2.1. pthread_create2.2. pthread_join2.3. pthread_detach2.4. pthread_exit2.5. pthread_cleanup_push2.6. pthread_cleanup_pop2.7. pthread_self3. 쓰레드 동기화 함수3.1. pthread_mutex_init3.2. pthread_mutex_destroy3.3. pthread_mutex_lock3.4. pthread_mutex_unlock3.5. pthr.. 더보기 유용하게 사용하는 매크로 함수 #include // 최대값 구하기 #define MAX(a,b) ( (a) > (b) ) ? (a):(b) // 대문자로 #define UPCASE(c) (( (c)>='a' && (c)='A' && (c) 더보기 [AIX]dynamic library & static library 1. AIX에서의 shared library와 static library compile 방법 가. source file 준비 1) app.c int main() { func(); return 0; } 2) test.c #include void func() { printf("Hello World!!\n"); } 나. static library로 compile cc -c test.c cc -c app.c ar -cr libtest.a test.o cc -o app app.o -L. -ltest 다. dynamic library로 compile xlc -c test.c xlc -G -bM:SRE -o libtest.so test.o ar -cr libtest.a libtest.so xlC -o app app... 더보기 POSIX 와 Thread-safety 재진입 POSIX.1에 기반한 C언 어 함수들은 단일 쓰레드 프로세스 환경을 가정하고 만들어졌다. 재 진입(Reentrancy)는 디자인 이슈가 아니었다. 그러므로 멀티 쓰레드 프로그래밍 환경에서 POSIX 함수가 재진입 가능할지를 보장할 수 없다. 멀티 쓰레드 환경에서는 사용하려는 함수가 재진입가능한지를 검토해야 한다. 예를 들어서 asctime함 수는 프로세스의 메모리영역에 공간을 할당하고, 그에 대한 포인터를 돌려준다. 데이터 영역이 독립적이지 않기 때문에 다른 쓰레드에서 asctime함수를 호출하면, 프로세스 데이터가 변해 버리는 문제가 발생한다. 001 #include 002 #include 003 #include 004 #include 005 #include 006 007 #define MAX.. 더보기 GCC 사용법 1 설치법 2 Application 구경 3 기본적인 사용법 4 프로그래밍 환경구성법 ㄱ. GCC 옵션 gcc 전역 옵션 --------------------------------------- -E : 전처리 과정 화면에 출력 -S : 어셈블리 파일 생성 -c : 오브젝트 파일 생성 -v : 컴파일 과정 화면에 출력 --save-temps : 컴파일 시 생성되는 중간 파일 저장 -da : 컴파일 과정에서 생성되는 중간 코드 생성(RTL 파일 등 생성) 전처리기(cpp0) 옵션 --------------------------------------- -I(패스) : 헤더 파일을 캄색할 디렉토리 지정 -include [헤더파일 패스] : 해당 헤더 파일을 모든 소스내 추가 -D[매크로] : 외부에서 #defi.. 더보기 xlC 컴파일 옵션 - AIX 1. 32bit/64bit 컴파일 기본적으로 AIX용 컴파일러는 프로그램을 32bit 모드로 컴파일한다. 원하는 bit 모드를 지정하려면 컴파일러, 아카이버, 링키지 에디터 등을 위해 아래와 같이 bit 모드 옵션이나 환경변수를 사용할 수 있다. - 컴파일러 옵션: -q32/-q64 - OBJECT_MODE 환경변수: 32/64 - Archive(ar) 옵션: -X32/-X64/-X32_64 - 링키지 에디터(ld) 옵션: -b32/-b64 아래는 64-bit 오브젝트를 생성하도록 컴파일하고 확인하는 예.. $ xlf -c -q64 bt.f $ dump -ov -X32_64 bt.o bt.o: ***Object Module Header*** # Sections Symbol Ptr # Symbols Opt.. 더보기 GCC Compile 옵션 및 과정 GCC Simple Option -Idir 옵션 dir은 디렉토리 이름 이고 -I와 디렉토리 이름을 붙이면 라이브러리를 찾아준다. -Dmacro Ex) -DMAXLEN=255 = #define MAXLEN 255 -M Makefile파일을 만들 때 파일 컴파일 규칙을 stdout에 찍어준다. -Wall 모든 경고 메시지를 출력하도록 한다. -O -O2 -O3 최적화 모드 뒤로 갈수록 더 빠르게 많은 옵션으로 최적화를 한다. -p, -pg 프로파일링 gcc -pg -o main main.cpp gprof hello gmon.out ar -t /usr/lib/libc.a ar -r libsample.a main.o GCC Compile 과정 preprocessing gcc -E main.cpp complin.. 더보기 이전 1 2 다음