Microsoft PowerPoint oshw1.ppt [호환 모드]

Similar documents
Microsoft PowerPoint oshw1.ppt [호환 모드]

Microsoft PowerPoint oshw1&2.ppt [호환 모드]

vi 사용법

6주차.key

Microsoft PowerPoint - System Programming Lab Week1.ppt [호환 모드]

4장


강의10

<4D F736F F F696E74202D20C1A632C0E520C7C1B7CEB1D7B7A5B0B3B9DFB0FAC1A4>

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

untitled

Microsoft PowerPoint APUE(Intro).ppt

gdb 사용법 Debugging Debug라는말은 bug를없앤다는말이다. Bug란, 컴퓨터프로그램상의논리적오류를말하며, 이것을찾아해결하는과정이바로, debugging이다. 초기컴퓨터들은실제벌레가컴퓨터에들어가서오작동을일으키는경우가있었다고하며, 여기서 debug 이라는말이

ABC 11장

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

1장. 유닉스 시스템 프로그래밍 개요

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

Microsoft PowerPoint - chap01-C언어개요.pptx

PowerPoint 프레젠테이션

금오공대 컴퓨터공학전공 강의자료

제1장 Unix란 무엇인가?

작성자 : 기술지원부 김 삼 수

PowerPoint 프레젠테이션

untitled

Microsoft PowerPoint - chap-02.pptx

제9장 프로세스 제어

Sena Technologies, Inc. HelloDevice Super 1.1.0

PowerPoint 프레젠테이션

<4D F736F F F696E74202D FC7C1B7CEBCBCBDBA20BBFDBCBAB0FA20BDC7C7E0205BC8A3C8AF20B8F0B5E55D>

2009년 상반기 사업계획

본 강의에 들어가기 전

Microsoft PowerPoint - Lecture_Note_7.ppt [Compatibility Mode]

System Programming Lab

PowerPoint 프레젠테이션

/chroot/lib/ /chroot/etc/

10.

휠세미나3 ver0.4

컴파일러

PRO1_09E [읽기 전용]

Lab 3. 실습문제 (Single linked list)_해답.hwp

강의의목표 Compiled Language vs. Interpreted Language 차이이해 Compiling의의미이해 Compiling의결과물확인 통합개발환경구축 Eclipse 통합개발환경을통한예제의 Bulid 및실행 Formatter 등의편집지원기능, Refer

PowerPoint 프레젠테이션

Microsoft PowerPoint - u4.pptx

PowerPoint 프레젠테이션

슬라이드 1

C 언어 프로그래밊 과제 풀이

KNK_C_05_Pointers_Arrays_structures_summary_v02

<4D F736F F F696E74202D204C BAB8C3E6BCB3B8ED202D20C7C1B7CEB1D7B7A1B9D6C0DBBCBAB0FAC1A42C C F>

Lab 4. 실습문제 (Circular singly linked list)_해답.hwp

Microsoft PowerPoint - ch09_파이프 [호환 모드]

2009년 상반기 사업계획

버퍼오버플로우-왕기초편 10. 메모리를 Hex dump 뜨기 앞서우리는버퍼오버플로우로인해리턴어드레스 (return address) 가변조될수있음을알았습니다. 이제곧리턴어드레스를원하는값으로변경하는실습을해볼것인데요, 그전에앞서, 메모리에저장된값들을살펴보는방법에대해배워보겠습

슬라이드 1

Microsoft PowerPoint - chap-02.pptx

The Pocket Guide to TCP/IP Sockets: C Version

PowerPoint 프레젠테이션

chap 5: Trees

<C1A63130C0E5C7C1B7CEBCBCBDBA2E687770>

프로그래밍개론및실습 2015 년 2 학기프로그래밍개론및실습과목으로본내용은강의교재인생능출판사, 두근두근 C 언어수업, 천인국지음을발췌수정하였음

슬라이드 1

PowerPoint 프레젠테이션

Discrete Mathematics

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate

PowerPoint 프레젠테이션

Microsoft PowerPoint - 10_Process

10 강. 쉘스크립트 l 쉘스크립트 Ÿ 쉘은명령어들을연속적으로실행하는인터프리터환경을제공 Ÿ 쉘스크립트는제어문과변수선언등이가능하며프로그래밍언어와유사 Ÿ 프로그래밍언어와스크립트언어 -프로그래밍언어를사용하는경우소스코드를컴파일하여실행가능한파일로만들어야함 -일반적으로실행파일은다

Microsoft PowerPoint - 08-C-App-19-Quick-Preprocessor

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

Microsoft PowerPoint - chap1 [호환 모드]

vi 사용법

제1장 Unix란 무엇인가?

PowerPoint 프레젠테이션

C 프로그램의 기본

C++-¿Ïº®Çؼ³10Àå

비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2

C 프로그래밊 개요

임베디드시스템설계강의자료 6 system call 1/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

PRO1_02E [읽기 전용]

Microsoft PowerPoint 통신 및 압축 명령어.ppt

13주-14주proc.PDF

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

Microsoft PowerPoint - chap13-입출력라이브러리.pptx

OCW_C언어 기초

좀비프로세스 2

PowerPoint Presentation

Microsoft PowerPoint - Java7.pptx

untitled

PowerPoint 프레젠테이션

Microsoft PowerPoint - lab14.pptx

chap7.key

Microsoft PowerPoint - 1C언어소개0.PPT

11장 포인터

17장 클래스와 메소드

PowerPoint 프레젠테이션

2009년 상반기 사업계획

Microsoft PowerPoint - chap06-2pointer.ppt

중간고사

Microsoft PowerPoint - [2009] 02.pptx

Transcription:

제출일 : 4월 5일 ( 목 ) 까지 과제내용» 연습문제풀이 1 1.6 2 2.8 3 3.8» 프로그래밍과제 4 5 과제 1 : 기본이해 # ftp 211.119.245.75 (id: anonymous, passwd: 자기 loginid) 또는 (id: ftp, passwd:ftp) 한다음 # cd pub 하고 # get p.c 하여 p 프로그램의 version 2 와 3 을작성하라. Version 2: 페이지당줄수를명령줄에명시하여변수 pagesize 에지정되도록, ( 실행예 ) # p 10 p.c Version 3: 키보드입력값이 b 이면이전의입력부분을재출력하는기능을추가 표준입력으로부터명령을한줄읽어프로그램이름과매개변수로나누고 fork() 를이용하여입력된명령을실행시키는매우단순한형태의쉘을 C 언어로작성하라. 단순한쉘은명령줄로부터입력된모든매개변수들을명령으로전달하여실행시키고명령이끝날때까지기다리도록구현한다. 문법오류를조사하는파싱은하지않아도좋다. exit 또는 Control-D를입력하면쉘에서빠져나오도록구현한다. 매개변수의최대개수는적절하게제한해도좋다. ( 힌트 : Unix 완성, 10장, Background Processing 참조 ) practice1.1

과제 1 : 기본이해 과제제출방법» 과제 1 & 2: Electronic version 모두제출 2El Electronic versions:» csblade.incheon.ac.kr (211.119.245.149) 의지정디렉토리 /export/home/homework/2007oshw.ab 에자기학번의디렉토리만들고그곳에소스파일과실행파일복사» csmail.incheon.ac.kr (211.119.245.75) 지정디렉토리 /home/homework/2007oshw.ab 에자기학번의디렉토리만들고그곳에소스파일과실행파일복사 선행작업» Linux 명령익히기 : http://marvel.incheon.ac.kr/ Information Linux 기본적인쉘명령어모음참조» vi 편집기익히기» Linux 환경에서 C 언어프로그래밍익히기 (gcc, gdb) 참고문헌» Graham Glass and King Ables, UNIX for Programmers and Users, 2 nd Ed., Prentice Hall PTR, 1999. UNIX for Programmers and Users ( 프로그래머와사용자를위한 UNIX 완성 ), Glass and Ables 저, 조경산역, 이한출판사, 2001.» 한동훈, 이만용역 (Neil Mattew, Richard Stones 원저 ), 초보자용리눅스프로그래밍 (Beginning Linux Programming), 대림, 1998.» 기타 Linux 참고서적 practice1.2

fork 시스템호출 printf( One\n ); pid = fork(); PC A printf(two\n ); fork BEFORE AFTER printf( One\n ); pid=fork(); printf( Two\n ); PC printf( One\n ); pid = fork(); printf( Two\n ); PC A B practice1.3

/*runls run ls in a subprocess */ main() { int pid; pid = fork(); exec 와 fork 의공동이용 execv char *av[3]; av[0]= ls ; av[1]= -l ; ( ) av[2]=(char *)0; execv( /bin/ls, av); /*if parent, use wait to suspend _ execution until execv child finishes */ if(pid > 0) { wait((int *)0); printf( ls completed n ); exit(0); /*if child then exec ls*/ if(pid == 0) { execl( /bin/ls, ls, -l,(char *)0); fatal( execl failed ); /*getting here means pid is negative, so error has occurred */ fatal( fork failed ); fatal(char *s) { perror(s); exit(1); practice1.4 execlp, execvp 쉘환경변수 PATH 를따름 execlp( ls, ls, -l, (char *)0); execvp( ls, av);

fork 와 exec 호출의조합 pid = fork(); PC A BEFORE FORK AFTER FORK wait((int*)0); PC execl( /bin/ls ); PC A B /* first line of ls */ PC AFTER FORK AFTER EXEC wait((int*)0); PC A practice1.5 B (now runs ls)

Fork 실습 telnet 211.119.245.68» id: 학번» passwd: 수업시간에알려줌 ftp 211.119.245.75» Id: anonymous id: ftp» passwd: 자기 loginid passwd: ftp 실습 1: ~mysung/osprog/fork.c 코드분석, 컴파일, 실행 실습 2: ~mysung/osprog/exec.c 코드분석, 컴파일, 실행 실습 3: ~mysung/osprog/background.c c 코드분석, 컴파일, 실행 실습 4: One, Two 출력하는 fork12.c 프로그램코딩, 컴파일, 실행 실습 5: 시스템호출 execl() 을이용하여 ls 프로그램을실행시키는 forkexecl.c 프로그램코딩, 컴파일, 실행 실습 6: 시스템호출 execv() 를이용하여 ls 프로그램을실행시키는 forkexecv.c 프로그램코딩, 컴파일, 실행 실습 5와실습6은아래자기학번숙제디렉토리에제출하세요» csblade.incheon.ac.kr ac (211.119.245.68) 119 245 의지정디렉토리 (/export/home/homework/2007oshw.ab) 에자기학번의디렉토리만들고그곳에소스파일과실행파일복사» csmail.incheon.ac.kr (211.119.245.75) 지정디렉토리 (/home/homework/2007oshw.ab) 에자기학번의디렉토리만들고그곳에 소스파일과실행파일복사 practice1.6

Fork 문제 #include <stdio.h> int value = 5; main () { int pid; pid = fork (); /* Duplicate. Child and parent continue from here */ if (pid!= 0) /* pid is non-zero, so I must be the parent */ { wait(null); printf ("Parent: value = %d\n", value); else /* pid is zero, so I must be the child */ { value += 15; printf ("Child: value = %d\n", value); printf ("PID %d terminates.\n",,getpid ());); /* Both processes execute this */ practice1.7

Vi 를이용한기본텍스트편집 커서의이동» hjkl 이용 H J K L [Vi mode] 4j» G 명령으로원하는행으로이동 7G G : 마지막행으로» 화면이동 ^F ^B ^D ^U 텍스트추가, 삽입, 수정 a(append) i(insert) o(open) O(Open) R(Replace) 텍스트의삭제및취소 (undo) x(exclude?) d(delete) dw db d$ d^ r(replace) u(update) U(Update) 최근명령재실행. 파일관리» Vi를벗어나지않고저장하기 : :w» 저장않고끝내기 : :q!» 또다른파일편집 : :e xx 또는 :e! xx» 다른파일을읽어와덧붙이기 : :r xx http://marvel.inchon.ac.kr/ h / 의 Information 참조 practice1.8

Vi 편집모드 append insert open replace $Vi filename a esc i esc o esc R esc O ~ $ ~ Vi mode (Vi 명령모드 ) :q!( 기록않음 ) ~ ZZ( 기록 ) :wq x dd r 커서이동 practice1.9

Linux/Unix C 언어프로그래밍 cc compiler» man cc» $ cc o hello hello.c» $ hello gcc compiler» GNU project C and C++ Compiler GNU(GNU s Not Unix, Free Software Foundation의 Richard Stallman)» man gcc» info gcc» $ gcc hello.c» $ a.out» $ gcc o hello hello.c» $ hello practice1.10

유닉스디버거 : gdb 프로그램을기호적으로디버깅 : dbx, adb, sdb, gdb, ddd(motif) 등» 단일단계이동 (single stepping)» 정지점 (breakpoint)» 디버거내에서편집» 변수의접근및수정» 함수의탐색» 추적 (tracing) gdb» GNU debugger, 별도의프롬프트표시» 관련정보는, 프롬프트에서 help를입력» dbx executablefilename 디버그를위한프로그램준비» cc의 -g 옵션으로프로그램을번역» 목적모듈내에디버깅정보포함 practice1.11

유닉스디버거 : gdb gdb 실행 gdb 실행파일이름 : 실행파일을디버그함 ( 실행파일은반드시 -g 옵션을사용하여컴파일되어야함 ) gdb 명령어» b (breakpoint) : 실행중디버그를위해멈추는위치지정» b 함수명 : 함수명에서멈춤» b 라인번호 : 라인번호에서멈춤» r (run) : 실행시작» n (next) : 현재라인실행 ( 함수의경우실행하고다음라인으로넘어감 )» s (step) : 현재라인실행 ( 함수의경우호출된함수내로들어가실행계속 )» c (continue) : 다음 breakpoint까지실행» l (list) : 현재수행되고있는라인부터 10개라인씩연속적으로소스코드를프린트» p (print) 변수명 : 변수명으로저장되어있는내용을프린트» h (help) : 도움말» q (quit) : gdb 종료 practice1.12

일찍일어나는새 당신이새라면 아침에일찍일어나야한다. 그래야벌레를잡아먹을수있을테니까. 만일당신이새라면 아침에일찍일어나라. 하지만만일 당신이벌레라면 아주늦게일어나야하겠지. 쉘실버스타인 practice1.13