Linux System Programming

Slides:



Advertisements
Similar presentations
1 08 배열. 한국대학교 객체지향연구소 2 C 로 배우는 프로그래밍 기초 2 nd Edition 배열  동일한 자료유형의 여러 변수를 일괄 선언  연속적인 항목들이 동일한 크기로 메모리에 저장되는 구조  동일한 자료 유형이 여러 개 필요한 경우에 이용할 수 있는.
Advertisements

Chapter 16 : Struts 프레임워크 2. chapter 16 : Struts 프레임워크 2.
ㅎㅎ 구조체 구조체 사용하기 함수 매개변수로서의 구조체 구조체 포인터와 레퍼런스 구조체 배열.
ㅎㅎ 구조체 C++ 프로그래밍 기초 : 객체지향의 시작 구조체 사용하기 함수 매개변수로서의 구조체 구조체 포인터와 레퍼런스
쉽게 풀어쓴 C언어 Express 제11장 포인터 C Express Slide 1 (of 27)
2장. 프로그램의 기본 구성. 2장. 프로그램의 기본 구성 2-1"Hello, World!" 들여다 보기 /* Hello.c */ #include int main(void) { printf("Hello, World! \n"); return 0;
제14장 동적 메모리.
C 프로그래밍 I.
제 9 장 구조체와 공용체.
컴퓨터 프로그래밍 기초 [Final] 기말고사
데이터 파일 C 데이터 파일과 스트림(Stream) 텍스트 파일 처리
자료 구조: Chapter 3 (2)구조체, 포인터
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 12. 포인터의 이해.
제15장 파일 입출력 문자열을 출력하는 여러가지 방법 (15-2쪽) 문자열만 처리하는 입출력 함수
Lesson 5. 레퍼런스 데이터형.
시스템 보안 [Buffer Overflow] DEC, 15, 2013 By 박동혁.
쉽게 풀어쓴 C언어 Express 제17장 동적메모리와 연결리스트 C Express Slide 1 (of 13)
UNIT 07 Memory Map 로봇 SW 교육원 조용수.
07. 디바이스 드라이버의 초기화와 종료 김진홍
CHAPTER 02 OpenCV 개요 PART 01 영상 처리 개요 및 OpenCV 소개.
Dynamic Memory and Linked List
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
컴퓨터 프로그래밍 기초 #02 : printf(), scanf()
Chapter 11 Strings.
C언어 프로그래밍의 이해 Ch14. 파일 입출력.
11 표준 입출력과 파일 입출력 데이터를 읽고 쓰는 다양한 방법 익히기!.
MicroC/OS-II 3. Memory Management ITISN Technical Lab.
TCP/IP Socket Programming…
14장. 포인터와 함수에 대한 이해.
2019년 1월 16일 오후 6시 15분 제 6 장 함수
-Part3- 제2장 문자열 표준 함수와 기타 표준 함수
11장. 1차원 배열.
17강 파일처리함수(1) 강 의 내 용 파일 입출력의 개념 파일포인터를 이용한 입출력 파일 입출력 과정
JA A V W. 03.
사용자 함수 사용하기 함수 함수 정의 프로그램에서 특정한 기능을 수행하도록 만든 하나의 단위 작업
UNIT 07 Memory Map 로봇 SW 교육원 조용수.
컴퓨터 개론 및 실습 11. 동적 메모리 할당.
이름 : 황 상 두 전화번호 : 이메일 : PinTool 이름 : 황 상 두 전화번호 : 이메일 :
3장 상수 변수 기본 자료형 키워드와 식별자 상수와 변수 기본 자료형 형변환 자료형의 재정의.
메모리 관리 & 동적 할당.
24장. 파일 입출력.
쉽게 풀어쓴 C언어 Express 제14장 포인터 활용 C Express Slide 1 (of 22)
19. 함수 포인터와 void 포인터.
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
컴퓨터 프로그래밍 기초 - 10th : 포인터 및 구조체 -
2장. 변수와 타입.
많은 자료가 있을 때는 배열을 사용한다. 아래는 배열을 사용하는 경우의 예시이다. 상황에 따라 1차원 또는 다차원 배열 필요.
컴퓨터 프로그래밍 기초 - 8th : 함수와 변수 / 배열 -
파일 입출력.
^^ Computer Programming 2 dmpr.cnu.ac.kr/~daygax.
제 6 장 함수(functions).
구조체 (Structure).
4장. 데이터 표현 방식의 이해. 4장. 데이터 표현 방식의 이해 4-1 컴퓨터의 데이터 표현 진법에 대한 이해 n 진수 표현 방식 : n개의 문자를 이용해서 데이터를 표현 그림 4-1.
C 프로그래밍 I.
1학기 정리 지난 학기에 배운 내용을 복습해 본다..
구조체(struct)와 공용체(union)
Chapter 12 파일 입출력.
Chapter 11 구조체.
실습과제 (변수와 자료형, ) 1. 다음 작업 (가), (나), (다)를 수행하는 프로그램 작성
제 4 장 Record.
06. 디바이스의 등록과 해제 김진홍
1장 C 언어의 개요 C 언어의 역사와 기원 C 언어의 특징 프로그램 과정 C 프로그램 구조 C 프로그램 예제.
제 29 강 스트링(string) 다루기 s a i s . s T i h t g r i n.
1. 지역변수와 전역변수 2. auto, register 3. static,extern 4. 도움말 사용법
김선균 컴퓨터 프로그래밍 기초 - 12th : 문자열 - 김선균
윈도우에서의 유니코드.
개정판 누구나 즐기는 C언어 콘서트 제13장 동적 메모리 출처: pixabay.
함수 강의자료 및 기말도우미.
2019 2학기 9장 배열과 포인터 1. 주소, 주소연산자(&) 2. 포인터, 역참조연산자(*) 3. 배열과 포인터.
Presentation transcript:

Linux System Programming Lecture #1 – 표준 C 라이브러리 함수

표준 C 라이브러리 함수 (1) 개요 C 언어 프로그램 작성 시에 유용한 기능을 제공하는 라이브러리 함수 ANSI C의 경우, 라이브러리 함수를 표준화 장점: 개발 기간의 단축 프로그램의 호환성과 낮은 유지보수 비용 단점: 실행시간에 의존적(time-critical)인 프로그램에서는 부적합 커널 접근이 많은 경우에는 부적합 Linux System Programming

표준 C 라이브러리 함수 (2) 종류 표준 입출력 함수 표준 라이브러리 함수 표준 수학 함수 표준 문자열 처리 함수 표준 바이트 스트림 처리 함수 표준 메모리 관리 함수 표준 시간 관련 함수 사용자 관리 함수 그룹 관리 함수 Linux System Programming

표준 C 라이브러리 함수 (3) GNU C library in Linux System GNU C Cimpiler를 위한 표준 C 라이브러리 glibc package 헤드 파일: /usr/include 라이브러리 아카이브: /usr/lib/libc.o, /usr/lib/libc.so Linux System Programming

표준 입출력 함수 (1) 스트림 파일 표준 입출력 함수 바이트 스트림 형태로 구성된 파일 바이트 단위 또는 바이트 블록 단위로 입출력이 가능 파일입출력포인터 : 스트림 파일의 입출력 위치를 표시 표준 입출력 함수 스트림 파일을 접근하기 위해 제공하는 함수 헤드파일: stdio.h ‘FILE’ 자료형 사용 스트림 파일을 참조하기 위해 사용 스트림 파일을 열면 생성 스트림 파일을 닫으면 소멸 Linux System Programming

표준 입출력 함수 (2) 표준 입출력 함수 (계속) 종류 fopen / fclose / fcloseall / freopen scanf / fscanf / sscanf printf / fprintf / sprintf getc / gets / fgets putc / puts / fputs fread / fwrite fseek / ftell / feof ferror / clearerr fineno / fdopen Linux System Programming

표준 입출력 함수 (3) 표준 입출력 함수 사용 예 표준 입출력 함수를 이용하여 파일(텍스트/이진)을 복사하는 프로그램 예 #1 : 일반 스트림 파일 입출력 함수를 사용 예 #2 : 표준 입출력 파일에 입출력 함수를 사용 Linux System Programming

표준 라이브러리 함수 (1) 표준 라이브러리 함수 스트림 처리와 관계없는 일반적인 라이브러리 함수 주로, 데이터 변환, 난수 발생, 쉘 환경변수 접근, 프로그램 실행제어, 셀 명령어 실행 등과 같은 기능을 지원 헤드 파일: stdlib.h Linux System Programming

표준 라이브러리 함수 (2) 쉘 명령어 실행 함수: system() 자료 변환 함수 sub-shell을 실행하여 그 셀로 하여금 전달된 명령어를 실행하도록 한다. 예제 1-4 : mini-shell 프로그램 자료 변환 함수 atoi(), atof(), atol() strtod(), strtol(), strtoul() 문자열 데이터를 수치 데이터로 변환 예제 1-5 : atol() 함수의 구현 Linux System Programming

표준 라이브러리 함수 (3) 난수 생성 함수 프로그램 종료 함수 srand(), rand() 사용자로 부터 seed 값을 얻어 임의적으로 난수를 발생시켜 반환 예제 1-6 : 유일한 난수를 반환하는 함수 구현 프로그램 종료 함수 exit(), atexit(), abort() 프로그램을 종료할 때에 사용하는 함수 Linux System Programming

표준 라이브러리 함수 (4) 환경 변수 관련 함수 명령어 라인 인수 접근 함수 getenv(), setenv() 셀 환경 변수를 설정하거나 접근할 수 있는 함수 putenv() 함수는 ANSI C에서 지원하지 않음 예제 1-7 : 환경 변수 접근 예 명령어 라인 인수 접근 함수 getopt() 리눅스 형식의 명령어 라인 인수를 접근하는 함수 예제 1-16 : 명령어 라인 인수 접근 예 Linux System Programming

표준 수학 함수 표준 수학 함수 일반적으로 널리 사용하는 수학 함수를 구현한 프로그램 함수 헤드 파일: math.h 종류: 삼각함수: sin(x), cos(x), tan(x) 역삼각함수: asin(x), acos(x), atan(x), atan2(y,x) 쌍곡선함수: sinh(x), cosh(x), tanh(x) 지수/로그 함수: exp(x), log(x), log10(x), pow(x, y) 기타함수: fabs(x), sqrt(x), ceil(x), floor(x), fmod(x, y) Linux System Programming

표준 문자열 처리 함수 (1) 표준 문자열 처리 함수 문자열 데이터를 다루기 위하여 제공되는 함수 거의 표준화된 함수가 제공되고 있음 종류: strlen(), strcmp(), strncmp() strcat(), strncat() strcpy(), strncpy() strchr(), strrchar(), strstr() strpbrk() strspn(), strcspn(), strtok() strerror() Linux System Programming

표준 문자열 처리 함수 (2) 표준 문자열 처리 함수 사용 예 문자열의 토큰 분리 함수 : strtok() Linux System Programming

표준 바이트 스트림 처리 함수 (1) 표준 바이트 스트림 처리 함수 바이트 스트림을 다루기 위한 함수 스트림의 내용이 문자가 아님 점을 제외하면 문자열 처리 함수와 매우 유사 주로 구조체형 변수를 초기화, 비교, 복사할 때에 사용 헤드 파일: memory.h 종류: memset(), memcmp(), memcpy(), memccpy(), memchr() Linux System Programming

표준 바이트 스트림 처리 함수 (2) 표준 바이트 스트림 처리 함수 사용 예 구조체형 변수의 초기화, 비교, 복사 bzero(), bcmp(), bcopy() 구현 문자열 처리 함수의 구현 Linux System Programming

표준 메모리 관리 함수 (1) 표준 메모리 관리 함수 동적 메모리 할당과 회수, 재할당을 수행하는 함수 헤드 파일: malloc.h 종류: malloc() / calloc() free() realloc() realloc() 함수 사용 malloc()/calloc() 함수에 의해 할당된 동적 메모리 크기를 조절 프로세스의 실행 과정 중에 크기가 변할 수 있는 동적 배열 관리에 매우 유용 Linux System Programming

표준 메모리 관리 함수 (2) 표준 메모리 관리 함수 C++ 언어의 new/delete 연산자와 유사 예제 1-13 : realloc() 함수의 사용 예 Linux System Programming

표준 시간 관련 함수 (1) 표준 시간 관련 함수 시스템 클럭(clock)을 질의하기 위한 함수 프로세스의 CPU 사용량 또는 지역 및 세계 표준시간 정보를 얻을 수 있음 헤드 파일: time.h 종류: Data type: type_t, struct tm time() / mktime() ctime() / localtime() / gmtime() / asctime() clock() Linux System Programming

표준 시간 관련 함수 (2) 표준 시간 관련 함수 사용 예 time_t형의 시간과 struct tm형의 시간 사이의 변환 시간 데이터를 문자열로 변환 CPU 클럭 측정 : 예제 1-15 Linux System Programming

분기 함수 (1) 분기 함수 C 언어의 goto 명령은 하나의 함수 안에서 한 문장에서 다른 문장으로 분기함 한 함수에서 다른 함수로 분기할 때 사용하는 함수 C 언어의 goto 명령은 하나의 함수 안에서 한 문장에서 다른 문장으로 분기함 주로 효과적인 오류 회복 기능을 제공하기 위해 사용 헤드 파일: setjmp.h 종류: Data type: jmp_buf setjmp() longjmp() Linux System Programming

분기 함수 (2) 분기 함수 사용 예 예제 1-17 Linux System Programming