Linux/UNIX Programming

Slides:



Advertisements
Similar presentations
Data Communication/Computer Network 관련 교과목의 내용
Advertisements

* 07/16/96 처음으로 배우는 C 프로그래밍 제1부 기초 제1장 시작하기 *.
제12장 표준 입출력과 파일 입출력.
[ 단원 12 ] 파일처리 부산대학교 남 태 우.
C++ Tutorial 1 서강대학교 데이터베이스 연구실.
Project #2-2. Pintos User Program
뇌를 자극하는 Windows Server 2012 R2
고급 시스템 프로그래밍 제1장 소개 창병모 숙명여대 컴퓨터과학과.
제 2장 컴퓨터 구조.
Database Laboratory, Hong Ik University
2014 ITA 8월 강의 C Programming -1주차- C언어 기초 정대진 ( )
-Part3- 제3장 콘솔 입출력과 파일 입출력.
C 프로그래밍 소개 숙명여대 창병모 2011 가을.
제6장 FUSING.
Operating Systems Overview
System Call Linux Kernel 수업 3번째.
FUSING.
데이터 파일 C 데이터 파일과 스트림(Stream) 텍스트 파일 처리
Linux/UNIX Programming
쉽게 풀어쓴 C언어 Express 제16장 파일 입출력 C Express Slide 1 (of 23)
HW#1 Source 파일 제출 3.20(수)까지 제출 학번_이름_01.c
Part 14 파일 입출력 ©우균, 창병모 ©우균, 창병모.
제15장 파일 입출력 문자열을 출력하는 여러가지 방법 (15-2쪽) 문자열만 처리하는 입출력 함수
UNIX Unbounded A Beginning Approach
UNIT 07 Memory Map 로봇 SW 교육원 조용수.
소프트웨어시스템 실험 Software Systems Lab. 데이터베이스 기초
9장 파일 입출력.
처음으로 배우는 C 프로그래밍 제5부 추가적인 화제들 제 11 장 파일 처리.
Part 04 입출력과 전처리 ©우균, 창병모 이 슬라이드는 부산대학교 우균이 작성하였습니다. 오류나 수정할 사항 있으면 연락 주세요.
컴퓨터과학 전공탐색 배상원.
1장. 프로그래밍 언어, C 프로그래밍.
Geek-OS Project 정영진
파일 기술자 복사 파일 기술자 복사 : dup(2) 파일 기술자 복사 : dup2(3)
12장 파일처리와 매크로 파일 입출력 함수 문자 입출력 함수 라인 입출력 함수 불록 입출력 함수 매크로.
Chapter 4. 보조자료 - 파일 입출력 파일의 기본 개념과 특징을 이해한다. 파일 처리 과정을 이해한다.
C언어 프로그래밍의 이해 Ch14. 파일 입출력.
11 표준 입출력과 파일 입출력 데이터를 읽고 쓰는 다양한 방법 익히기!.
전자의료시스템 및 실습 C-언어 구 환 경희대학교 전자정보대학 동서의료공학과.
TCP/IP Socket Programming…
14주차.
1주차: 프로그래밍언어란 무엇인가? C 언어란? C 프로그래밍을 위한 준비
10장 C 표준 파일 입출력 子曰 學而時習(실습?)之 不亦悅乎.
17강 파일처리함수(1) 강 의 내 용 파일 입출력의 개념 파일포인터를 이용한 입출력 파일 입출력 과정
18강 파일처리함수(2) 강 의 내 용 순차파일 만들기와 읽기 순차파일 입출력함수 랜덤파일 처리
Linux Programming Spring 2008
UNIT 07 Memory Map 로봇 SW 교육원 조용수.
Linux/UNIX Programming
A Web-Based Little Man Computer Simulator
2015 운영체제 특강 수업 소개 Special Topics on Operating Systems
Linux/UNIX Programming
제1장 Unix란 무엇인가?.
Linux/UNIX Programming
Linux/UNIX Programming APUE (Thread Programming)
Linux/UNIX Programming
Operating System Multiple Access Chatting Program using Multithread
Linux/UNIX Programming
Linux/UNIX Programming
Homework #7 (1/4) 다음 프로그램을 작성하고, 프로그램과 실행 결과를 함께 제출한다.
PHP 웹 프로그래밍 (PHP Web Programming) 미리 정의된 함수 문양세 강원대학교 IT대학 컴퓨터과학전공.
C언어 개론.
구조체(struct)와 공용체(union)
운영체제 (Operating Systems)
Windows System Programming
06. 디바이스의 등록과 해제 김진홍
학부 컴퓨터공학부 교육과정 (학부) 2학년 4학년 3학년 1학년 1학기 2학기 IPP 자격과정 전공트랙
C 13장. 입출력 라이브러리 #include <stdio.h> int main(void) { int num;
C.
Eclipse를 이용한 Embedded Linux 응용 프로그램 개발
Linux/UNIX Programming
⊙ 입출력 처리란? data를 입력장치로부터 program 내부로 읽어 들이거나
Presentation transcript:

Linux/UNIX Programming APUE (Introduction) 문양세 강원대학교 IT대학 컴퓨터과학전공

APUE 강의 목적 Linux/Unix 시스템 프로그래밍 Linux/Unix 시스템의 체계적 이해 시스템 프로그래밍 능력 향상 APUE (Introduction) Linux/Unix 시스템 프로그래밍 파일, 프로세스, 시그널(signal), 네트워크 프로그래밍 Linux/Unix 시스템의 체계적 이해 시스템 프로그래밍 능력 향상

APUE 강의 동기 Linux/Unix는 인기 있는 운영체제 시스템 프로그래밍 서버 시스템(웹 서버, 데이터베이스 서버) APUE (Introduction) Linux/Unix는 인기 있는 운영체제 서버 시스템(웹 서버, 데이터베이스 서버) 공학 및 상업용으로 응용되고 있음 연구 개발 용으로도 많이 사용됨 최근 임베디드 시스템, 모바일 디바이스, 클라우드 시스템에 많이 활용되고 있음 시스템 프로그래밍 OS 자원을 이용한 프로그래밍 Linux/Unix 시스템 호출 사용 파일, 프로세스, IPC, 네트워킹, … DBMS, compiler, groupware, debugger, …

Linux/Unix 시스템 구조 Hardware Kernel System Call APUE (Introduction) Hardware CPU, Memory, Disk, Peripherals Kernel Process Management File Management Memory Management Device management System Call The programmer's functional interface to the Linux/Unix kernel Commands, Utilities, Application programs Kernel services using library routines or system calls

시스템 호출 (System Calls) (1/2) APUE (Introduction) Process System call interface File Management IPC Process Management

시스템 호출 (System Calls) (2/2) APUE (Introduction) Application programs talk to the operating systems via system calls. The programmer's functional interface to the Linux/UNIX kernel.

User Mode vs. Kernal Kernel User process open(char *name, int mode) { APUE (Introduction) Kernel User process Address of kernel close() Address of kernel open() result=open(“file.txt”, O_RDONLY); User code Address of kernel write() open(char *name, int mode) { <Place parameters in registers> <Execute trap instruction, switching to kernel code > <Return result of system call> } kernel code for open() { <Manipulate kernel data> . . . <Return to user code> } Kernel system call code C runtime library

System Calls & Library Functions (1/2) APUE (Introduction) System Calls Well defined entry points directly into the kernel Documented in section 2 of the Linux/Unix man pages Look like C functions which can be called from a user's program – just need to include the appropriate header 예) read(), write() Library Functions The library function is often more elaborate than the system call, and usually invokes the system call (System call 보다는 좀 더 사용하기 쉽고 편리하게 제작) 예) fprintf(), fscanf()

System Calls & Library Functions (2/2) APUE (Introduction) application code C library functions system calls hardware (hard disk…) user process kernel

C I/O Library Functions APUE (Introduction) 표준 입력 함수 (standard input function) scanf(), getchar() 표준 출력 함수 (standard output function) printf(), putchar() 표준 파일 입력 함수 fscanf(), fgets(), fgetc() 표준 파일 출력 함수 fprintf(), fputs(), fputc()

파일 입출력 (1/2) 파일 입출력 과정 파일 열기: fopen 입출력 방식 파일 열기, 읽기/쓰기, 파일 닫기 APUE (Introduction) 파일 입출력 과정 파일 열기, 읽기/쓰기, 파일 닫기 파일 열기: fopen #include <stdio.h>   FILE    *fp; fp=fopen("파일 이름", "입출력방식"); 입출력 방식 r: 읽기 전용 w: 쓰기 전용 a: 추가(append) 수록 r+: 읽기쓰기겸용 w+: 쓰기읽기겸용 a+: 읽기추가겸용

파일 입출력 (2/2) 파일 입력 함수 파일 출력 함수 파일 닫기 fscanf(), fgets(), fgetc() APUE (Introduction) 파일 입력 함수 fscanf(), fgets(), fgetc() 열린 파일에서 내용을 읽어 들이는 함수 파일 출력 함수 fprintf(), fputs(), fputc() 열린 파일에 내용을 기록하는 함수 파일 닫기 fclose()

파일 출력 예제 (fgets.c) (1/2) APUE (Introduction)

파일 출력 예제 (fgets.c) (2/2) APUE (Introduction)

파일 입출력 예제 (fcopy.c) (1/2) APUE (Introduction)

파일 입출력 예제 (fcopy.c) (2/2) APUE (Introduction)

시스템 프로그래밍 준비 에디터 컴파일러 디버거 make We already knew “vi”. APUE (Introduction) 에디터 컴파일러 디버거 make We already knew “vi”. We may use “cc” or “gcc” You should learn either “gdb” or “dbx”. We already learned about “make” and “Makefile”.