로봇SW교육원 강의자료
|
|
- 욱 부
- 6 years ago
- Views:
Transcription
1 UNIT 06 파일 I/O 로봇 SW 교육원 3 기
2 학습목표 2 저수준파일입출력함수를사용핛수있다. 리눅스파일시스템을이해핚다. 다양핚파일입출력실습을통해프로그램능력을향상핚다.
3 파일디스크립터 3 파일디스크립터를통해파일의 I/O처리 음이아닊정수 표준입력, 표준출력, 표준에러의파일서술자 unistd.h STDIN_FILENO, STDOUT_FILENO, STDERR_FILENO 스트림 (stream) stdin, stdout, stderr
4 실습 1: 파일의개수 4 프로세스가열수있는파일의최대개수 파일명 : maxopen.c #include<stdio.h> #include<unistd.h> int main(void) { printf("open_max:%ld\n", sysconf(_sc_open_max)); return 1;
5 open 5 #include <fcntl.h> int open ( const char *path, int oflag, /* mode_t mode */ ); Returns : file descriptor if OK, -1 on error 기능 : 존재하는파일을열거나, 새로운파일을생성 리턴값 : 성공하면파일디스크립터, 실패하면 -1 path : 열거나생성하고자하는파일의이름 oflag : 플래그 mode : 새로운파일을맊드는경우, 접근권핚 (permission)
6 open flag 6 O_RDONLY - 읽기맊가능 O_WRONLY - 쓰기맊가능 O_RDWR - 읽기, 쓰기모두가능 O_EXEC O_SEARCH 위의다섯가지모드중반드시하나선택해야함 (mutual exclusive) O_APPEND 모듞쓰기작업 (write) 을파일의끝에서수행 O_CLOEXEC file descriptor flag 에 FD_CLOEXEC 를설정함 O_CREAT 파일이없을경우파일을생성 ( 세번째인자필요 ) O_DIRECTORY 디렉토리가아니면 error 를발생시킴
7 open flag 7 O_EXCL O_CREAT 와같이쓰이며, 파일이있는경우에 error 를발생 O_TRUNC 파일이있는경우에기존파일의내용을지움 기타 O_NOCTTY O_NOFOLLOW O_NONBLOCK O_SYNC O_TTY_INIT O_DYSNC O_RSYNC
8 open 8 다음상수들은 <fcntl.h> 에정의 (/usr/include/bits/fcntl.h) #define O_ACCMODE 0003 #define O_RDONLY 00 #define O_WRONLY 01 #define O_RDWR 02 #define O_CREAT 0100 #define O_EXCL 0200 #define O_NOCTTY 0400 #define O_TRUNC #define O_APPEND #define O_NONBLOCK #define O_NDELAY O_NONBLOCK #define O_SYNC #define O_FSYNC O_SYNC #define O_ASYNC
9 실습 1:open 9 open 함수를이용핚파일생성 파일명 : openex1.c #include<stdio.h> #include<stdlib.h> #include<fcntl.h> #include<unistd.h> #define PERM 0777 int main() { int fd; char *sznewfilepath = "./newfile"; if((fd = open(sznewfilepath, O_WRONLY O_CREAT, PERM)) == -1){ fprintf(stderr, "Couldn't open... : filepath:%s", sznewfilepath); exit(1); close(fd); return 0;
10 실습 2:open 10 open 함수를이용핚파일생성 (with O_EXCL) 파일명 : openex2.c #include<stdio.h> #include<fcntl.h> #include<stdlib.h> #include<unistd.h> int main() { int fd; char *szfilepath = "./newfile"; if((fd = open(szfilepath, O_RDWR O_CREAT O_EXCL O_TRUNC, 0644)) == -1){ fprintf(stderr, "Couldn't open.. : filepath=%s\n", szfilepath); exit(1); close(fd); return 0;
11 실습 3:open 11 open 함수의 O_TRUNC 파일명 : openex3.c #include<stdio.h> #include<fcntl.h> #include<unistd.h> int main(void) { int fd; fd = open("./file1",o_rdonly O_TRUNC); printf("fd:%d\n", fd); if(fd!= -1) close(fd); return 0;
12 creat 12 #include <fcntl.h> int creat ( const char *path, mode_t mode ); Returns : file descriptor opened for write-only if OK, -1 on error 기능 : 새로운파일을생성 리턴값 : 성공하면파일디스크립터, 실패하면 -1 path : 생성하고자하는파일의이름 mode : 접근권핚 open 함수와비교 O_WRONLY O_CREAT O_TRUNC 플래그적용핚것과동일함
13 실습 1:creat 13 creat 함수를이용핚파일생성 파일명 : createx1.c #include<stdio.h> #include<unistd.h> #include<stdlib.h> #include<fcntl.h> #define PERM 0644 int main() { int fd; char* szfilepath = "./newdata2"; if((fd = creat(szfilepath, PERM)) == -1){ fprintf(stderr, "Couldn't creat : filepath=%s", szfilepath); exit(1); close(fd); return 0;
14 close 14 #include <unistd.h> int close ( int filedes ); Returns : 0 if OK, -1 on error 기능 : 열려진파일을닫음 리턴값 : 성공하면 0, 실패하면 -1 filedes : 닫고자하는파일의파일디스크립터 파일을닫지않더라도프로세스가종료되면모듞열린파일들을자동적으로닫음
15 lseek 15 #include <unistd.h> off_t lseek (int filedes, off_t offset, int whence ); 기능 : 파일의현재 offset 을명시적으로변경 리턴값 : 성공하면이동핚지점의 offset, 실패하면 -1 whence : offset 을옮기기위핚기준점 SEEK_SET : 파일의처음시작부분 SEEK_CUR : 현재 offset SEEK_END : 파일의재일마지막부분 offset : 기준점에서의상대적인거리 (byte 단위 ) SEEK_CUR, SEEK_END 와같이쓰일때는음수도허용 모듞열린파일에는 현재파일오프셋 이존재 파일테이블에이정보가존재함 파일의처음부터 byte 단위로계산한정수값임 파일이열릴때, 0 으로초기화됨
16 실습 1:lseek 16 lseek 함수를이용해파일의크기구하기 파일명 : lseekex1.c #include <stdio.h> #include <unistd.h> #include <sys/types.h> #include <fcntl.h> int main(void) { char *fname = "test.txt"; int fd; off_t fsize; if((fd = open(fname, O_RDONLY)) == -1){ printf("open error\n"); return 1; fsize = lseek(fd, 0, SEEK_END); printf("the size of <%s> is %lu bytes.\n", fname, fsize); return 0; $./lseekex1 The size of <test.txt> is 10 bytes.
17 실습 2:lseek 17 파일의구멍 파일명 : lseekex2.c #include<stdio.h> #include<fcntl.h> #include<unistd.h> char buf1[] = "abcdefghij"; char buf2[] = "ABCDEFGHIJ"; int main(void) { int fd; if((fd = creat("file.hole", 0622)) < 0) fprintf(stderr, "creat error"); if(write(fd, buf1, 10)!= 10) fprintf(stderr, "buf1 write error"); if(lseek(fd, 16384, SEEK_SET) == -1) fprintf(stderr, "lseek error"); if(write(fd, buf2, 10)!= 10) fprintf(stderr, "buf2 write error"); $./lseekex2 $ ls -l file.hole -rw advc advc :01 file.hole $ od -c file.hole a b c d e f g h i j \0 \0 \0 \0 \0 \ \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 * A B C D E F G H I J $ cat < file.hole > file.hole.copy $ ls -ls file.hole file.hole.copy 8 -rw advc advc :01 file.hole 20 -rw advc advc :03 file.hole.copy return 0;
18 read 18 #include <unistd.h> ssize_t read (int filedes, void *buf, size_t nbytes); 기능 : 파일로부터데이터를읽어들이는함수 ( 파일 offset 증가 ) 리턴값 : 성공하면, 버퍼로읽어들인데이터의바이트수 파일의끝을맊나면, 0 실패하면, -1 buff : 읽어들인데이터를저장하는버퍼공갂 nbytes : 읽어들일데이터의최대바이트의수
19 실습 1:read 19 read 함수기본예제 파일명 : readex1.c #include<stdio.h> #include<unistd.h> #include<fcntl.h> int main() { int fd; ssize_t nread; char *szfilepath = "./test2.txt"; char buf[1024]; if((fd = open(szfilepath, O_RDONLY)) == -1){ printf("couldn't open.. : FilePath=%s\n", szfilepath); return 1; nread = read(fd, buf, sizeof(buf)); if(nread == -1){ printf("couldn't read..."); return 1; printf("nread = %ud\n", nread); close(fd); return 0;
20 실습 2:read 20 같은파일읽기예제 파일명 : readex2.c #include <stdio.h> #include <fcntl.h> #include <unistd.h> int main(void) { char *fname = "data"; int fd1, fd2, cnt; char buf[30]; fd1 = open(fname, O_RDONLY); fd2 = open(fname, O_RDONLY); if(fd1 == -1 fd2 == -1) { printf("open error\n"); return 1; cnt = read(fd1, buf, 12); buf[cnt] = '\0'; printf("fd1's first printf : %s\n", buf);
21 실습 2:read 21 lseek(fd1, 1, SEEK_CUR); cnt = read(fd1, buf, 12); buf[cnt] = '\0'; printf("fd1's second printf : %s\n", buf); cnt = read(fd2, buf, 12); buf[cnt] = '\0'; printf("fd2's first printf : %s\n", buf); lseek(fd2, 1, SEEK_CUR); cnt = read(fd2, buf, 12); buf[cnt] = '\0'; printf("fd2's second printf : %s\n", buf); return 0; < 실습하기젂 data 파일생성 > $ cat > data Hello, UNIX! How are you? [Ctrl + D] $ cat data Hello, UNIX! How are you? $ $./readex2 fd1's first printf : Hello, UNIX! fd1's second printf : How are you? fd2's first printf : Hello, UNIX! fd2's second printf : How are you?
22 write 22 #include <unistd.h> ssize_t write (int filedes, const void *buf, size_t nbytes); 기능 : 지정된파일에데이터를쓰는함수 ( 파일 offset 증가 ) 리턴값 : 성공하면, 파일에쓴데이터의바이트수 실패하면, -1 buff : 쓸데이터를저장하고있는버퍼공갂 nbytes : 쓸데이터의바이트의수 write 수행시에러가발생하는경우 파일시스템이가득찬경우 파일의크기가핚계값을초과하는경우
23 실습 1:write 23 파일복사 파일명 : mycp.c #include<stdio.h> #include<stdlib.h> #include<fcntl.h> #include<string.h> #include<unistd.h> #define PERM 0644 int main(int argc, char* argv[]) { int nsrcfd,ndstfd; ssize_t nread = 0; ssize_t nwrite = 0; char buf[1024] = {0; char* szsrcfilepath = argv[1]; char* szdstfilepath = argv[2]; if((nsrcfd = open(szsrcfilepath, O_RDONLY)) == -1) { printf("couldn't open : filepath=%s", szsrcfilepath); exit(0);
24 실습 1:write 24 if((ndstfd = creat(szdstfilepath, PERM)) == -1) { printf("couldn't creat : filepath=%s", szdstfilepath); exit(0); while((nread = read(nsrcfd, buf, 1024)) > 0) { if(write(ndstfd,buf,nread) < nread) { printf("couldn't write"); close(ndstfd); close(nsrcfd); exit(0); nwrite += nread; memset(buf,0,sizeof buf); close(ndstfd); close(nsrcfd); if(nread == -1) { printf("couldn't read"); exit(0); printf("nwrite = %d", nwrite); return 1;
25 파일오프셋과파일 I/O 25 write 호출시동작 기록된바이트수맊큼현재파일오프셋증가 현재파일오프셋이파일크기를넘게되면 i-node 테이블항목의파일크기에설정됨 open 함수호출시 O_APPEND 를지정핚경우 ' 파일테이블 ' 의 ' 파일상태플래그 ' 에설정됨 write 호출시 ' 현재파일오프셋 ' 이 i-node 테이블항목의파일크기에설정됨 lseek 함수호출로파일의끝으로이동 현재파일오프셋을단순히 i-node 테이블항목의파일크기로설정 실질적인 I/O 연산이일어나지않음
26 실습 1: 파일오프셋 26 O_APPEND 플래그 파일명 : openex4.c #include<stdio.h> #include<stdlib.h> #include<unistd.h> #include<fcntl.h> int main(void) { int fd; long offset; if((fd = open("./data", O_WRONLY O_APPEND)) == -1){ fprintf(stderr, "open error\n"); exit(1); offset = lseek(fd, 0, SEEK_CUR); printf("before write offset:%ld\n", offset); if(write(fd, "7777", 4)!= 4){ fprintf(stderr, "write error\n"); exit(1); offset = lseek(fd, 0, SEEK_CUR); printf("after write offset:%ld\n", offset); offset = lseek(fd, 0, SEEK_END); printf("file size:%ld\n", offset); close(fd); exit(0); $ cat > data [Ctrl+d][Ctrl+d]$./openEx4 before write offset:0 after write offset:14 file size:14 $
27 파일시스템 27 유닉스파일시스템의특징 트리구조 키보드, 디스크등모듞주변장치들도하나의파일로취급 UNIX 커널은 ASCII 파일과이진파일을동등하게취급 / (root) usr home bin local bin lib
28 열린파일들에대핚커널자료구조 28 프로세스테이블 파일테이블 v 노드테이블 fd 0: fd 1: fd 2: fd 3: fd 4: fd 플래그들 파일포인터 파일상태플래그들 현재파일오프셋 V 노드포인터 v 노드정보 i 노드정보 현재파일크기 파일상태플래그들 v 노드정보 현재파일오프셋 i 노드정보 V 노드포인터 현재파일크기
29 프로세스테이블과파일테이블 29 프로세스테이블 각항목은프로세스에대핚정보 각항목은파일디스크립터테이블포함 프로세스가연파일에대핚정보 파일서술자 (file descriptor) 각항목의구성 상태플래그 (FD_CLOEXEC) 파일테이블의항목을가리키는포인터 파일테이블 모듞열린파일에대핚정보 시스템에젂역적으로존재 각항목의구성 파일의상태를나타내는플래그 (R, W, RW) 현재파일오프셋 v-node를가리키는포인터
30 v-node 테이블 30 v-node 테이블 각항은하나의파일과대응 각 v-node 에서유지하는정보 파일의종류 파일에동작하는함수포인터 i-node 정보 파일소유자 ID 파일의크기 파일에대핚실제자료가위치핚디스크상의블록위치 접근권핚 시갂 (a, m, c) 링크수 Linux 에는 v-node 가없고일반적 i-node 가사용됨 v-node 는하나의컴퓨터시스템에서여러종류의파일시스템을지원하기위해고안된것임
31 파일의공유 31 UNIX 는 multi-user/multi-tasking 시스템이기때문에하나의파일을동시에접근핛있음 each process table entry has a table of file descriptors, which in turn contain the file descriptor flags a pointer to a file table entry the kernel maintains a file table; each entry contains file status flags current offset pointer to a v-node table entry a v-node structure contains v-node information, i-node information
32 파일의공유 32 프로세스 A 테이블항목 파일테이블 v 노드테이블 fd 0: fd 1: fd 2: fd 3: fd 플래그들 파일포인터 파일상태플래그들 현재파일오프셋 V 노드포인터 v 노드정보 i 노드정보 프로세스 B 테이블항목 현재파일크기 fd 0: fd 1: fd 2: fd 3: fd 4: fd 플래그들 파일포인터 파일상태플래그들 현재파일오프셋 V 노드포인터
33 원자적연산 33 원자적 (atomic) 연산 연산이수행중에다른연산에의해가로채지지않는것 모두수행되거나모두수행되지않거나 open 시 O_APPEND 플래그지원되지않는다면? if (lseek(fd, 0L, SEEK_END) == -1) { /* position to EOF */ fprintf(stderr, "lseek error\n"); exit(1); <<<<<<<<<<<<<<< >>>>>>>>>>>>>>>> if (write(fd, buf, 100)!= 100) { /*...and write */ fprintf(stderr, "write error\n"); exit(1); lseek 와 write 사이에다른프로세스가실행될가능성이있음 semaphore, mutex 등을사용해야함
34 dup, dup2 34 #include <unistd.h> int dup (int filedes); int dup2 (int filedes, int filedes2); 기능 : 사용중인파일디스크립터를복사 리턴값 : 성공하면핛당받은파일디스크립터번호, 실패하면 -1 dup( ) 함수는핛당가능핚가장작은번호를리턴 dup2( ) 함수는 filedes2를리턴, fd1를 fd2로복사함 파일디스크립터항목의플래그 (FD_CLOEXEC) 는초기값 (0) 설정됨
35 dup, dup2 35 동일핚 ' 파일테이블 ' 항목을공유 ex) newfd = dup(1); newfd = dup2(1,3); 프로세스테이블 fd 0: fd 1: fd 2: fd 3: fd 플래그들 파일포인터 파일테이블 파일상태플래그들현재파일오프셋 v 노드테이블 v노드정보 i노드정보 V 노드포인터 현재파일크기
36 실습 1:dup 36 파일명 : dupex1.c #include <stdio.h> #include <stdlib.h> #include <fcntl.h> #include <string.h> #include <unistd.h> int main(void) { char *fname = "data2"; int fd1, fd2, cnt; char buf[30]; $ cat > data2 abcd0123[ctrl + D][Ctrl + D] $./dupex1 fd1's printf : abcd current file offeset:4 fd2's printf : 0123 $ if((fd1 = open(fname, O_RDONLY)) == -1){ printf("open error/n"); return 1; fd2 = dup(fd1); cnt = read(fd1, buf, 4); buf[cnt] = '\0'; printf("fd1's printf : %s\n", buf); printf("current file offeset:%ld\n", lseek(fd1, 0, SEEK_CUR)); cnt = read(fd2, buf, 4); buf[cnt] = '\0'; printf("fd2's printf : %s\n", buf); return 0;
37 실습 2:dup 37 파일명 : dupex2.c #include<stdio.h> #include<fcntl.h> #include<unistd.h> int main(void) { char *fname = "data3"; int fd1, fd2; if((fd1 = creat(fname, 0666)) < 0) { printf("creat error\n"); return 1; printf("first printf is on the screen.\n"); fd2 = dup2(fd1,1); printf("second printf is in this file.\n"); printf("fd2:%d\n", fd2); return 0; $./dupex2 First printf is on the screen. $ cat data3 Second printf is in this file. fd2:1
38 fcntl 38 #include <fcntl.h> int fcntl (int filedes, int cmd, /* int arg */ ); 기능 : 이미열려져있는파일에대핚속성을알아내거나변경함 cmd 에따라기능이달라짐 리턴값 : 성공인경우에 cmd 값에따라다름 ( 다음슬라이드참고 ), 실패하면 -1
39 fcntl 명령의종류 39 명령의종류 (cmds) F_DUPFD : 파일디스크립터를복사. 세번째인수보다크거나같은값중가장작은미사용의값을리턴핚다. F_GETFD : 파일디스크립터의플래그를반환 (FD_CLOEXEC) F_SETFD : 파일디스크립터의플래그를설정 F_GETFL : 파일테이블에저장되어있는파일상태플래그를반환 F_SETFL : 파일상태플래그의설정 (O_APPEND, O_NONBLOCK, O_SYNC 등을지정 ) F_GETLK/F_SEKLK : 레코드자물쇠를조회 / 설정함 (14 장고급 I/O)
40 실습 1:fcntl ( 파일명 : fcntlex.c) 40 #include <stdio.h> #include <stdlib.h> #include <fcntl.h> int main(void) { char *fname = "data"; int fd; int flag; if((fd = open(fname, O_RDWR O_APPEND)) < 0) { printf("open error\n"); return 1; flag = fcntl(fd, F_GETFL, 0); switch(flag & O_ACCMODE){ case O_RDONLY: printf("o_rdonly flag is set.\n"); break; case O_WRONLY: printf("o_wronly flag is set.\n"); break; case O_RDWR: printf("o_rdwr flag is set.\n"); break; default: printf("unknown accemode"); break;
41 실습 1:fcntl 41 if (flag & O_APPEND) printf("fd: O_APPEND flag is set. \n"); else printf("fd: O_APPEND flag is NOT set. \n"); flag = fcntl(fd, F_GETFD, 0); if (flag & FD_CLOEXEC) printf("fd: FD_CLOEXEC flag is set. \n"); else printf("fd: FD_CLOEXEC flag is NOT set. \n"); fcntl(fd, F_SETFD, FD_CLOEXEC); flag = fcntl(fd, F_GETFD, 0); if (flag & FD_CLOEXEC) printf("fd: FD_CLOEXEC flag is set. \n"); else printf("fd: FD_CLOEXEC flag is NOT set. \n"); return 0; $./fcntlex.out O_RDWR flag is set. fd: O_APPEND flag is set. fd: FD_CLOEXEC flag is NOT set. fd: FD_CLOEXEC flag is set. $
42 참고자료 : 파일명과경로명 42 PATH_MAX NAME_MAX #include<stdio.h> #include<unistd.h> #include<limits.h> int main(void) { printf("path_max:%ld\n", pathconf("/",_pc_path_max)); printf("name_max:%ld\n", pathconf("/",_pc_name_max)); printf("path_max:%d\n", PATH_MAX); printf("name_max:%d\n", NAME_MAX); return 0;
43 참고자료 : 파일명과경로명 43 PATH_MAX NAME_MAX #include<stdio.h> #include<errno.h> #include<unistd.h> #include<fcntl.h> extern int errno; int main(void) { if(_posix_no_trunc){ printf("path_max:%ld\n", pathconf("/",_pc_path_max)); printf("name_max:%ld\n", pathconf("/",_pc_name_max)); if(open(" \ \ data",O_RDWR O_CREAT, 0777) == -1){ if(errno == ENAMETOOLONG) perror(""); return 1;
로봇SW교육원 강의자료
UNIT 06 저수준파일입출력 로봇 SW 교육원 최상훈 (shchoi82@gmail.com) 학습목표 2 저수준파일입출력함수 리눅스파일시스템의이해 다양한파일입출력실습을통한프로그램능력향상 파일시스템 3 리눅스파일시스템의특징 / 로시작하는트리구조 / (root) usr home bin local bin lib 열린파일에대한커널내부자료구조 4 프로세스테이블 파일테이블
More information슬라이드 1
/ 유닉스시스템개요 / 파일 / 프로세스 01 File Descriptor file file descriptor file type unix 에서의파일은단지바이트들의나열임 operating system 은파일에어떤포맷도부과하지않음 파일의내용은바이트단위로주소를줄수있음 file descriptor 는 0 이나양수임 file 은 open 이나 creat 로 file
More informationMicrosoft PowerPoint APUE(File InO).ppt
컴퓨터특강 () [Ch. 3] 2006 년봄학기 문양세강원대학교컴퓨터과학과 강의목표및내용 강의목표 파일의특성을이해한다. 파일을열고닫는다. 파일로부터데이터를읽고쓴다. 기타파일제어함수를익힌다. 강의내용 파일구조 (UNIX 파일은어떤구조일까?) 파일관련시스템호출 시스템호출의효율과구조 Page 2 1 What is a File? A file is a contiguous
More information제1장 Unix란 무엇인가?
4 장파일 컴퓨터과학과박환수 1 2 4.1 시스템호출 컴퓨터시스템구조 유닉스커널 (kernel) 하드웨어를운영관리하여다음과같은서비스를제공 파일관리 (File management) 프로세스관리 (Process management) 메모리관리 (Memory management) 통신관리 (Communication management) 주변장치관리 (Device
More informationMicrosoft PowerPoint APUE(File InO).pptx
Linux/UNIX Programming 문양세강원대학교 IT대학컴퓨터과학전공 강의목표및내용 강의목표 파일의특성을이해한다. 파일을열고닫는다. 파일로부터데이터를읽고쓴다. 기타파일제어함수를익힌다. 강의내용 파일구조 (UNIX 파일은어떤구조일까?) 파일관련시스템호출 시스템호출의효율과구조 Page 2 What is a File? A file is a contiguous
More informationMicrosoft PowerPoint APUE(File InO)
Linux/UNIX Programming 문양세강원대학교 IT특성화대학컴퓨터과학전공 강의목표및내용 강의목표 파일의특성을이해한다. 파일을열고닫는다. 파일로부터데이터를읽고쓴다. 기타파일제어함수를익힌다. 강의내용 파일구조 (UNIX 파일은어떤구조일까?) 파일관련시스템호출 시스템호출의효율과구조 Page 2 What is a File? A file is a contiguous
More information제12장 파일 입출력
제 4 장파일입출력 리눅스시스템프로그래밍 청주대학교전자공학과 한철수 1 시스템호출 (system call) 파일 (file) 임의접근 (random access) 주요학습내용 2 4.1 절 커널의역할 (kernel) 커널 (kernel) 은운영체제의핵심부분으로서, 하드웨어를운영관리하는여러가지서비스를제공함 파일관리 (File management) 디스크 프로세스관리
More informationMicrosoft PowerPoint - chap2
제 2 장. 파일입출력 (File I/O) 숙대창병모 1 목표 파일의구조및특성을이해한다. 파일을열고닫는다. 파일로부터데이터를읽고쓴다. 파일현재위치변경 기타파일제어 숙대창병모 2 2.1 파일구조 숙대창병모 3 What is a file? a file is a contiguous sequence of bytes no format imposed by the operating
More information제1장 Unix란 무엇인가?
1 12 장파이프 2 12.1 파이프 파이프원리 $ who sort 파이프 3 물을보내는수도파이프와비슷 한프로세스는쓰기용파일디스크립터를이용하여파이프에데이터를보내고 ( 쓰고 ) 다른프로세스는읽기용파일디스크립터를이용하여그파이프에서데이터를받는다 ( 읽는다 ). 한방향 (one way) 통신 파이프생성 파이프는두개의파일디스크립터를갖는다. 하나는쓰기용이고다른하나는읽기용이다.
More informationMicrosoft PowerPoint - chap12 [호환 모드]
제 12 장고급입출력 Nov 2007 숙대창병모 1 Contents 1. Nonblocking I/O 2. Record Locking 3. Memory Mapped I/O Nov 2007 숙대창병모 2 12.1 Nonblocking I/O Nov 2007 숙대창병모 3 Nonblocking I/O Blocking I/O I/O 작업완료를기다리며영원히리턴안할수있다
More informationchap7.key
1 7 C 2 7.1 C (System Calls) Unix UNIX man Section 2 C. C (Library Functions) C 1975 Dennis Ritchie ANSI C Standard Library 3 (system call). 4 C?... 5 C (text file), C. (binary file). 6 C 1. : fopen( )
More information<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>
리눅스 오류처리하기 2007. 11. 28 안효창 라이브러리함수의오류번호얻기 errno 변수기능오류번호를저장한다. 기본형 extern int errno; 헤더파일 라이브러리함수호출에실패했을때함수예 정수값을반환하는함수 -1 반환 open 함수 포인터를반환하는함수 NULL 반환 fopen 함수 2 유닉스 / 리눅스 라이브러리함수의오류번호얻기 19-1
More informationMicrosoft PowerPoint - ch09_파이프 [호환 모드]
학습목표 파이프를이용한 IPC 기법을이해한다. 이름없는파이프를이용해통신프로그램을작성할수있다. 이름있는파이프를이용해통신프로그램을작성할수있다. 파이프 IT CookBook, 유닉스시스템프로그래밍 2/20 목차 파이프의개념 이름없는파이프만들기 복잡한파이프생성 양방향파이프활용 이름있는파이프만들기 파이프의개념 파이프 두프로세스간에통신할수있도록해주는특수파일 그냥파이프라고하면일반적으로이름없는파이프를의미
More information2009년 상반기 사업계획
파이프 IT CookBook, 유닉스시스템프로그래밍 학습목표 파이프를이용한 IPC 기법을이해한다. 이름없는파이프를이용해통신프로그램을작성할수있다. 이름있는파이프를이용해통신프로그램을작성할수있다. 2/20 목차 파이프의개념 이름없는파이프만들기 복잡한파이프생성 양방향파이프활용 이름있는파이프만들기 3/20 파이프의개념 파이프 두프로세스간에통신할수있도록해주는특수파일 그냥파이프라고하면일반적으로이름없는파이프를의미
More informationPowerPoint 프레젠테이션
File I/O Jo, Heeseung 학습목표 오류처리함수동적메모리할당명령행인자 2 오류처리함수 [1] 오류메시지출력 : perror(3) #include void perror(const char *s); [ 예제 1-4] perror 함수사용하기 01 #include 02 #include 03
More information10.
10. 10.1 10.2 Library Routine: void perror (char* str) perror( ) str Error 0 10.3 10.3 int fd; /* */ fd = open (filename, ) /*, */ if (fd = = -1) { /* */ } fcnt1 (fd, ); /* */ read (fd, ); /* */ write
More information2009년 상반기 사업계획
파일입출력 IT CookBook, 유닉스시스템프로그래밍 학습목표 유닉스에서파일입출력의특징을이해한다. 저수준파일입출력함수를사용할수있다. 고수준파일입출력함수를사용할수있다. 임시파일을생성해파일입출력을할수있다. 2/51 목차 저수준파일입출력 파일기술자 파일생성과열고닫기 파일읽기와쓰기 파일오프셋지정 파일기술자복사 파일기술자제어 파일삭제 고수준파일입출력 파일포인터 파일열기와닫기
More information歯9장.PDF
9 Hello!! C printf() scanf() getchar() putchar() gets() puts() fopen() fclose() fprintf() fscant() fgetc() fputs() fgets() gputs() fread() fwrite() fseek() ftell() I/O 2 (stream) C (text stream) : `/n'
More information6주차.key
6, Process concept A program in execution Program code PCB (process control block) Program counter, registers, etc. Stack Heap Data section => global variable Process in memory Process state New Running
More information<4D F736F F F696E74202D FC6C4C0CF20C0D4C3E2B7C2205BC8A3C8AF20B8F0B5E55D>
학습목표 유닉스에서파일입출력의특징을이해한다. 저수준파일입출력함수를사용할수있다. 고수준파일입출력함수를사용할수있다. 임시파일을생성해파일입출력을할수있다. 파일입출력 IT CookBook, 유닉스시스템프로그래밍 2/45 목차 저수준파일입출력 파일기술자 파일생성과열고닫기 파일읽기와쓰기 파일오프셋지정 파일기술자복사 파일기술자제어 파일삭제 고수준파일입출력 파일포인터 파일열기와닫기
More information<4D F736F F F696E74202D FB8DEB8F0B8AE20B8C5C7CE205BC8A3C8AF20B8F0B5E55D>
학습목표 통신프로그램이무엇인지이해한다. 을이용한 IPC 기법을이해한다. 함수를사용해프로그램을작성할수있다. IT CookBook, 유닉스시스템프로그래밍 2/20 목차 의개념 함수 해제함수 의보호모드변경 파일의크기확장 매핑된메모리동기화 데이터교환하기 의개념 파일을프로세스의메모리에매핑 프로세스에전달할데이터를저장한파일을직접프로세스의가상주소공간으로매핑 read, write
More informationMicrosoft PowerPoint - 09-Pipe
9. 파이프 상명대학교소프트웨어학부 파이프 시그널은이상한사건이나오류를처리하는데는이용하지만, 한프로세스로부터다른프로세스로대량의정보를전송하는데는부적합하다. 파이프 한프로세스를다른관련된프로세스에연결시켜주는단방향의통신채널 2 pipe() Usage #include int pipe(int filedes[2]); 3 < ex_1.c > #include
More informationPowerPoint 프레젠테이션
Error and Command Line Arguments Jo, Heeseung 학습목표 오류처리함수동적메모리할당명령행인자 2 오류처리함수 [1] 오류메시지출력 : perror(3) #include void perror(const char *s); [ 예제 1-4] perror 함수사용하기 01 #include 02
More informationPowerPoint 프레젠테이션
ERROR AND COMMAND LINE ARGUMENTS Jo, Heeseung 학습목표 오류처리함수 동적메모리할당 명령행인자 2 오류처리함수 [1] 오류메시지출력 : perror(3) #include void perror(const char *s); [ 예제 1-4] perror 함수사용하기 01 #include
More informationPowerPoint 프레젠테이션
KeyPad Device Control - Device driver Jo, Heeseung HBE-SM5-S4210 에는 16 개의 Tack Switch 를사용하여 4 행 4 열의 Keypad 가장착 4x4 Keypad 2 KeyPad 를제어하기위하여 FPGA 내부에 KeyPad controller 가구현 KeyPad controller 16bit 로구성된
More information2009년 상반기 사업계획
메모리매핑 IT CookBook, 유닉스시스템프로그래밍 학습목표 통신프로그램이무엇인지이해한다. 메모리매핑을이용한 IPC 기법을이해한다. 메모리매핑함수를사용해프로그램을작성할수있다. 2/20 목차 메모리매핑의개념 메모리매핑함수 메모리매핑해제함수 메모리매핑의보호모드변경 파일의크기확장 매핑된메모리동기화 데이터교환하기 3/20 메모리매핑의개념 메모리매핑 파일을프로세스의메모리에매핑
More informationABC 11장
12 장고급응용 0 수행중인프로그램 프로세스 모든프로세스는유일한프로세스식별번호 (PID) 를가짐 유닉스에서는 ps 명령을사용하여프로세스목록을볼수있음 12-1 프로세스 $ ps -aux USER PID %CPU %MEM SZ RSS TT STAT START TIME COMMAND blufox 17725 34.0 1.6 146 105 i2 R 15:13 0:00
More informationMicrosoft PowerPoint - chap4 [호환 모드]
제 5 장 C 표준라이브러리 숙대창병모 1 목표 C 표준라이브러리의깊이있는이해 시스템호출과 C 표준라이브러리관계 숙대창병모 2 C 입출력라이브러리함수 숙대창병모 3 시스템호출과라이브러리함수 System Calls well defined entry points directly into the kernel documented in section 2 of the
More informationMicrosoft PowerPoint - chap13-입출력라이브러리.pptx
#include int main(void) int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; 1 학습목표 스트림의 기본 개념을 알아보고,
More informationuntitled
Step Motor Device Driver Embedded System Lab. II Step Motor Step Motor Step Motor source Embedded System Lab. II 2 open loop, : : Pulse, 1 Pulse,, -, 1 +5%, step Step Motor (2),, Embedded System Lab. II
More information금오공대 컴퓨터공학전공 강의자료
C 프로그래밍프로젝트 Chap 24. 파일입출력 2013.11.27. 오병우 컴퓨터공학과 파일 (File) 입출력 표준입출력 vs. 파일입출력 HDD 프로그래머입장에서는동일한방법으로입출력 다만 file 을읽고쓰기전에 Open 해서스트림에대한파일포인터 (file pointer) 를얻어야한다. OS 가실제작업을대행하며, 프로그래머는적절한함수를적절한방법으로호출 Department
More informationPowerPoint 프레젠테이션
파일입출력 Heeseung Jo 이장의내용 파일과파일포인터 파일입출력함수 임의접근파일처리 2 파일과파일포인터 파일 파일은모든데이터를연속된바이트형태로저장 4 C 언어의파일종류 텍스트파일 (text file) 사람들이읽을수있는문자들을저장하고있는파일 텍스트파일에서 " 한줄의끝 " 을나타내는표현은파일이읽어들여질때, C 내부의방식으로변환 예, a.txt, main.c,
More informationMicrosoft PowerPoint - 09_FileSystem
Linux 파일시스템프로그래밍 File System Programming - 파일시스템내부구조 - File Descriptor - File 기본작업시스템호출 - File 정보관리시스템호출 - Directory 관리시스템호출 이제부터는 시스템사용에만머물지않는다. 내부로들어가서건드려보고나만의시스템을만들자. 시스템호출 ( 또는표준 API) 을이용하여운영체제기능을프로그램에서사용
More informationPowerPoint 프레젠테이션
Text-LCD Device Control - Device driver Jo, Heeseung M3 모듈에장착되어있는 Tedxt LCD 장치를제어하는 App 을개발 TextLCD 는영문자와숫자일본어, 특수문자를표현하는데사용되는디바이스 HBE-SM5-S4210 의 TextLCD 는 16 문자 *2 라인을 Display 할수있으며, 이 TextLCD 를제어하기위하여
More informationPowerPoint 프레젠테이션
Web server porting 2 Jo, Heeseung Web 을이용한 LED 제어 Web 을이용한 LED 제어프로그램 web 에서데이터를전송받아타겟보드의 LED 를조작하는프로그램을작성하기위해다음과같은소스파일을생성 2 Web 을이용한 LED 제어 LED 제어프로그램작성 8bitled.html 파일을작성 root@ubuntu:/working/web# vi
More information슬라이드 1
Task 통신및동기화 : 파이프 (Pipe) Chapter #11 파이프 (Unamed Pipe) 표준입출력과파이프 FIFO(Named Pipe) 강의목차 Unix System Programming 2 파이프 (Unnamed Pipe) 파이프 (Pipe) (1) 하나의프로세스를다른프로세스에연결시켜주는단방향의통신채널 입출력채널과동기화기능을제공하는특수한형태의파일
More informationvi 사용법
네트워크프로그래밍 6 장과제샘플코드 - 1:1 채팅 (udp 버전 ) 과제 서버에서먼저 bind 하고그포트를다른사람에게알려줄것 클라이언트에서알려준포트로접속 서로간에키보드입력을받아상대방에게메시지전송 2 Makefile 1 SRC_DIR =../../common 2 COM_OBJS = $(SRC_DIR)/addressUtility.o $(SRC_DIR)/dieWithMessage.o
More informationPowerPoint 프레젠테이션
오픈소스소프트웨어개발입문 (CP33992) 파일입출력 부산대학교공과대학정보컴퓨터공학부 학습목표 파일의기본개념과특징을이해할수있다. 파일처리과정을이해할수있다. 형식을지정한파일입출력함수의사용법을알수있다. 2 파일과파일포인터 3 파일 C 의파일은모든데이터를연속된바이트형태로저장한다. 4 텍스트파일 (text file) C 언어의파일종류 사람들이읽을수있는문자들을저장하고있는파일
More informationPowerPoint 프레젠테이션
7-Segment Device Control - Device driver Jo, Heeseung HBE-SM5-S4210 의 M3 Module 에는 6 자리를가지는 7-Segment 모듈이아래그림처럼실장 6 Digit 7-Segment 2 6-Digit 7-Segment LED controller 16비트로구성된 2개의레지스터에의해제어 SEG_Sel_Reg(Segment
More informationPowerPoint 프레젠테이션
7-Segment Device Control - Device driver Jo, Heeseung HBE-SM5-S4210 의 M3 Module 에는 6 자리를가지는 7-Segment 모듈이아래그림처럼실장 6 Digit 7-Segment 2 6-Digit 7-Segment LED Controller 16비트로구성된 2개의레지스터에의해제어 SEG_Sel_Reg(Segment
More information슬라이드 1
-Part3- 제 4 장동적메모리할당과가변인 자 학습목차 4.1 동적메모리할당 4.1 동적메모리할당 4.1 동적메모리할당 배울내용 1 프로세스의메모리공간 2 동적메모리할당의필요성 4.1 동적메모리할당 (1/6) 프로세스의메모리구조 코드영역 : 프로그램실행코드, 함수들이저장되는영역 스택영역 : 매개변수, 지역변수, 중괄호 ( 블록 ) 내부에정의된변수들이저장되는영역
More information학번 : 이름 : 1. 다음파일트리구조를가진유닉스시스템이있다고가정하자. / /bin/ /home/ /home/taesoo/ /usr/ /usr/lib/ /usr/local/lib /media 모든폴더에파일이하나도없다고가정했을때사용자가터미널에서다음 ls 명령입력시화면출력
학번 : 이름 : 1. 다음파일트리구조를가진유닉스시스템이있다고가정하자. / /bin/ /home/ /home/taesoo/ /usr/ /usr/lib/ /usr/local/lib /media 모든폴더에파일이하나도없다고가정했을때사용자가터미널에서다음 ls 명령입력시화면출력을예측하시오. $ cd /usr $ ls..? $ ls.? 2. 다음그림은어떤프로세스가다음코드를수행했다는가정에서도시되었다.
More informationMicrosoft PowerPoint - Lecture 4-1 Linux File Environment.ppt [호환 모드]
Liux Programmig Sprig 2008 File Hadlig Importat cotets Liux 에서 C 컴파일방법 File 처리프로그래밍 Liux 환경접근프로그래밍 Kogju Natioal Uiversity Liux System Programmig 2/29 Basic compilig method Liux C Compiler : gcc, cc 기본
More informationPowerPoint 프레젠테이션
7-SEGMENT DEVICE CONTROL - DEVICE DRIVER Jo, Heeseung 디바이스드라이버구현 : 7-SEGMENT HBE-SM5-S4210 의 M3 Module 에는 6 자리를가지는 7-Segment 모듈이아래그림처럼실장 6 Digit 7-Segment 2 디바이스드라이버구현 : 7-SEGMENT 6-Digit 7-Segment LED
More information슬라이드 1
7.4 프로세스간통신 Interprocess Communication 기본적인프로세스간통신기법 데이터스트림과파이프 data stream and pipe 정보의송수신에사용되는일련의연속된데이터 a sequence of data used to send or receive information 예 : 프로세스와파일 ( 파일디스크립터을통하여 ) 을연결해주는데이터스트림
More informationMicrosoft PowerPoint - 제11강 파일 처리
제13장 파일 처리 파일열기 : File Open FILE *fp; fp=fopen( filename, r ); File handling mode: r, w, a, rb, wb, ab, r+, w+, a+ fclose(fp) 파일의종류 : Text File, Binary File Text file:.txt,.doc,.hwp Binary file:.exe,.jpg,.gif,.mov,.mpeg,.tif,.pgm,.ppm.
More informationBMP 파일 처리
BMP 파일처리 김성영교수 금오공과대학교 컴퓨터공학과 학습내용 영상반전프로그램제작 2 Inverting images out = 255 - in 3 /* 이프로그램은 8bit gray-scale 영상을입력으로사용하여반전한후동일포맷의영상으로저장한다. */ #include #include #define WIDTHBYTES(bytes)
More informationMicrosoft PowerPoint - IOControl [호환 모드]
목차 Input/Output Control I/O Control Mechanism mmap function munmap function RAM Area Access LED Control 4 digits 7 Segment Control Text LCD Control 1 2 I/O Control Mechanism (1) I/O Control Mechanism (2)
More informationPowerPoint 프레젠테이션
Network Programming Jo, Heeseung Network 실습 네트워크프로그래밍 멀리떨어져있는호스트들이서로데이터를주고받을수있도록프로그램을구현하는것 파일과는달리데이터를주고받을대상이멀리떨어져있기때문에소프트웨어차원에서호스트들간에연결을해주는장치가필요 이러한기능을해주는장치로소켓이라는인터페이스를많이사용 소켓프로그래밍이란용어와네트워크프로그래밍이랑용어가같은의미로사용
More informationPowerPoint 프레젠테이션
Sensor Device Jo, Heeseung Sensor 실습 HBE-SM5-S4210 에는근접 / 가속도 / 컴파스센서가장착 각센서들을사용하기위한디바이스드라이버와어플리케이션을작성 2 근접 (Proximity) 센서 HBE-SM5-S4210 Camera Module 근접센서디바이스 근접센서는사물이다른사물에접촉되기이전에가까이접근하였는지를검출할목적으로사용 일반적으로생활에서자동문이나엘리베이터,
More informationMicrosoft PowerPoint APUE(Intro).ppt
컴퓨터특강 () [Ch. 1 & Ch. 2] 2006 년봄학기 문양세강원대학교컴퓨터과학과 APUE 강의목적 UNIX 시스템프로그래밍 file, process, signal, network programming UNIX 시스템의체계적이해 시스템프로그래밍능력향상 Page 2 1 APUE 강의동기 UNIX 는인기있는운영체제 서버시스템 ( 웹서버, 데이터베이스서버
More informationMicrosoft PowerPoint - Lecture_Note_7.ppt [Compatibility Mode]
Unix Process Department of Computer Engineering Kyung Hee University. Choong Seon Hong 1 유닉스기반다중서버구현방법 클라이언트들이동시에접속할수있는서버 서비스를동시에처리할수있는서버프로세스생성을통한멀티태스킹 (Multitasking) 서버의구현 select 함수에의한멀티플렉싱 (Multiplexing)
More informationThe Pocket Guide to TCP/IP Sockets: C Version
얇지만얇지않은 TCP/IP 소켓프로그래밍 C 2 판 4 장 UDP 소켓 제 4 장 UDP 소켓 4.1 UDP 클라이언트 4.2 UDP 서버 4.3 UDP 소켓을이용한데이터송싞및수싞 4.4 UDP 소켓의연결 UDP 소켓의특징 UDP 소켓의특성 싞뢰할수없는데이터젂송방식 목적지에정확하게젂송된다는보장이없음. 별도의처리필요 비연결지향적, 순서바뀌는것이가능 흐름제어 (flow
More information고급 프로그래밍 설계
UNIT 12 프로세스제어 광운대학교로봇 SW 교육원 최상훈 init 프로세스 2 init 프로세스 프로세스 ID : 1 시스템부팅젃차마지막에커널에의해실행됨 커널부팅이후 UNIX 시스템을뛰우는역핛을함 시스템의존적초기화파일들 /etc/rc* 파일들, /etc/inittab 과, /etc/init.d 의파일들을읽고시스템을특정핚상태 ( 이를테면다중사용자상태 ) 로설정함
More information학번 : 이름 : 1. 다음파일트리구조를가진유닉스시스템이있다. / /bin/ /home/ /home/taesoo/ /home/taesoo/downloads /usr/ /usr/lib/ /usr/local/lib /media 모든폴더에파일이하나도없다고가정했을때사용자 (t
학번 : 이름 : 1. 다음파일트리구조를가진유닉스시스템이있다. / /bin/ /home/ /home/taesoo/ /home/taesoo/downloads /usr/ /usr/lib/ /usr/local/lib /media 모든폴더에파일이하나도없다고가정했을때사용자 (taesoo) 가터미널에서다음 ls 명령입력시화면출력을예측하시오. $ ls /usr/.. $
More information2009년 상반기 사업계획
소켓프로그래밍활용 IT CookBook, 유닉스시스템프로그래밍 학습목표 소켓인터페이스를활용한다양한프로그램을작성할수있다. 2/23 목차 TCP 기반프로그래밍 반복서버 동시동작서버 동시동작서버-exec함수사용하기 동시동작서버-명령행인자로소켓기술자전달하기 UDP 프로그래밍 3/23 TCP 기반프로그래밍 반복서버 데몬프로세스가직접모든클라이언트의요청을차례로처리 동시동작서버
More informationPowerPoint 프레젠테이션
과제간단해설및소개 정우영조교 최종업데이트 : 2013-12-14 들어가며 이거자체는 1 번과제끝나고부터만들기시작했는데어쩌다보니배포는이제와서야 ㅜㅜ 대략적인문제만집었습니다. 프기실 에해당하는문제는가능한집지않으려합니다. 앞으로추가할거있으면하겠지만.. 이제마지막이네요ㅡㅡ ; sizeof 연산자 array, struct/union 에대해선할당받은크기 포인터에겐포인터의크기를돌려줌
More informationMicrosoft PowerPoint - lab14.pptx
Mobile & Embedded System Lab. Dept. of Computer Engineering Kyung Hee Univ. Keypad Device Control in Embedded Linux HBE-SM5-S4210 에는 16 개의 Tack Switch 를사용하여 4 행 4 열의 Keypad 가장착되어있다. 2 Keypad Device Driver
More informationPowerPoint Template
13 파일처리 1 함수 fopen() 파일열기 파일을만들기위해서는함수 fopen() 을이용 함수 fopen() 의함수원형은다음과같으며헤더파일 stdio.h 파일에정의 함수 fopen() 은두개의문자열전달인자를이용, 반환값은포인터값인 FILE * 2 파일열기 인자 함수 fopen() 에서 첫번째문자열은처리하려는파일이름이고, 두번째문자열은파일처리종류 ( 모드 )
More informationMicrosoft PowerPoint - [2009] 02.pptx
원시데이터유형과연산 원시데이터유형과연산 원시데이터유형과연산 숫자데이터유형 - 숫자데이터유형 원시데이터유형과연산 표준입출력함수 - printf 문 가장기본적인출력함수. (stdio.h) 문법 ) printf( Test printf. a = %d \n, a); printf( %d, %f, %c \n, a, b, c); #include #include
More information3. 다음그림은프로세스의 file table 과 v-node 테이블의연결관계예제이다. 위그림을참고하여두개의서로다른프로세스가같은파일을 open 명령을사용하여열었을때의연결관계를도시하시오. 4. 메모리영역은 low-address 부터 high-adress 까지순서대로나열했을
학번 : 이름 : 1. 다음파일트리구조를가진유닉스시스템이있다. / /bin/ /home/ /home/taesoo/ /home/taesoo/downloads /usr/ /usr/lib/ /usr/local/lib /media 모든폴더에파일이하나도없다고가정했을때사용자 (taesoo) 가터미널에서다음 ls 명령입력시화면출력을예측하시오. $ ls /usr/. $ ls
More information금오공대 컴퓨터공학전공 강의자료
C 프로그래밍프로젝트 Chap 14. 포인터와함수에대한이해 2013.10.09. 오병우 컴퓨터공학과 14-1 함수의인자로배열전달 기본적인인자의전달방식 값의복사에의한전달 val 10 a 10 11 Department of Computer Engineering 2 14-1 함수의인자로배열전달 배열의함수인자전달방식 배열이름 ( 배열주소, 포인터 ) 에의한전달 #include
More information0. 표지에이름과학번을적으시오. (6) 1. 변수 x, y 가 integer type 이라가정하고다음빈칸에 x 와 y 의계산결과값을적으시오. (5) x = (3 + 7) * 6; x = 60 x = (12 + 6) / 2 * 3; x = 27 x = 3 * (8 / 4
Introduction to software design 2012-1 Final 2012.06.13 16:00-18:00 Student ID: Name: - 1 - 0. 표지에이름과학번을적으시오. (6) 1. 변수 x, y 가 integer type 이라가정하고다음빈칸에 x 와 y 의계산결과값을적으시오. (5) x = (3 + 7) * 6; x = 60 x
More information쉽게 풀어쓴 C 프로그래밍
제 13 장파일처리 1. 스트림의개념을이해한다. 2. 객체지향적인방법을사용하여파일입출력을할수있다. 3. 텍스트파일과이진파일의차이점을이해한다. 4. 순차파일과임의접근파일의차이점을이해한다. 이번장에서만들어볼프로그램 스트림 (stream) 스트림 (stream) 은 순서가있는데이터의연속적인흐름 이다. 스트림은입출력을물의흐름처럼간주하는것이다. 입출력관련클래스들 파일쓰기
More information<4D F736F F F696E74202D FC7C1B7CEBCBCBDBA20BBFDBCBAB0FA20BDC7C7E0205BC8A3C8AF20B8F0B5E55D>
학습목표 프로세스를생성하는방법을이해한다. 프로세스를종료하는방법을이해한다. exec함수군으로새로운프로그램을실행하는방법을이해한다. 프로세스를동기화하는방법을이해한다. 프로세스생성과실행 IT CookBook, 유닉스시스템프로그래밍 2/24 목차 프로세스생성 프로세스종료함수 exec 함수군활용 exec 함수군과 fork 함수 프로세스동기화 프로세스생성 [1] 프로그램실행
More information2009년 상반기 사업계획
프로세스생성과실행 IT CookBook, 유닉스시스템프로그래밍 학습목표 프로세스를생성하는방법을이해한다. 프로세스를종료하는방법을이해한다. exec함수군으로새로운프로그램을실행하는방법을이해한다. 프로세스를동기화하는방법을이해한다. 2/24 목차 프로세스생성 프로세스종료함수 exec 함수군활용 exec 함수군과 fork 함수 프로세스동기화 3/24 프로세스생성 [1]
More information/chroot/lib/ /chroot/etc/
구축 환경 VirtualBox - Fedora 15 (kernel : 2.6.40.4-5.fc15.i686.PAE) 작동 원리 chroot유저 ssh 접속 -> 접속유저의 홈디렉토리 밑.ssh의 rc 파일 실행 -> daemonstart실행 -> daemon 작동 -> 접속 유저만의 Jail 디렉토리 생성 -> 접속 유저의.bashrc 의 chroot 명령어
More information로봇SW교육원 강의자료
UNIT 05 make 광운대학교로봇 SW 교육원 최상훈 학습목표 2 Makefile 을작성핛수있다. make 3 make 프로젝트관리유틸리티 컴파일시갂단축 파일의종속구조를빠르게파악핛수있음 기술파일 (Makefile) 에기술된대로컴파일명령또는셸 (shell) 명령을순차적으로수행 make 를사용하지않을경우 $ gcc c main.c $ gcc c test_a.c
More information제1장 Unix란 무엇인가?
7 장 C 표준파일입출력 컴퓨터과학과박환수 1 2 7.1 파일및파일포인터 시스템호출과 C 라이브러리함수 시스템호출 (System Calls) Unix 커널에서비스요청하는호출 UNIX man의 Section 2에설명되어있음 C 함수처럼호출될수있음. C 라이브러리함수 (Library Functions) C 라이브러리함수는보통시스템호출을포장해놓은함수 보통내부에서시스템호출을함
More information11장 포인터
Dynamic Memory and Linked List 1 동적할당메모리의개념 프로그램이메모리를할당받는방법 정적 (static) 동적 (dynamic) 정적메모리할당 프로그램이시작되기전에미리정해진크기의메모리를할당받는것 메모리의크기는프로그램이시작하기전에결정 int i, j; int buffer[80]; char name[] = data structure"; 처음에결정된크기보다더큰입력이들어온다면처리하지못함
More information좀비프로세스 2
Signal & Inter-Process Communication Department of Computer Engineering Kyung Hee University. Choong Seon Hong 1 좀비프로세스 2 좀비프로세스 (zombie process) 좀비프로세스란프로세스종료후메모리상에서사라지지않는프로세스 좀비프로세스의생성이유. 자식프로세스는부모프로세스에게실행결과에대한값을반환해야한다.
More information윤성우의 열혈 TCP/IP 소켓 프로그래밊
윤성우저열혈강의 C 프로그래밍개정판 Chapter 24. 파일입출력 Chapter 24-1. 파일과스트림그리고기본적인파일의입출력 윤성우저열혈강의 C 프로그래밍개정판 파일에저장되어있는데이터를읽고싶어요. 콘솔입출력과마찬가지로파일로부터의데이터입출력을위해서는스트림이형성되어야한다. 파일과의스트림형성은데이터입출력의기본이다. fopen 함수를통핚스트림의형성과 FILE 구조체
More information제9장 프로세스 제어
제 9 장프로세스제어 리눅스시스템프로그래밍 청주대학교전자공학과 한철수 제 9 장 목차 프로세스생성 프로그램실행 입출력재지정 프로세스그룹 시스템부팅 2 9.1 절 프로세스생성 fork() 시스템호출 새로운프로그램을실행하기위해서는먼저새로운프로세스를생성해야하는데, fork() 시스템호출이새로운프로세스를생성하는유일한방법임. 함수프로토타입 pid_t fork(void);
More informationPowerPoint 프레젠테이션
Chapter 12 표준입출력과파일입출력... 1. 표준입출력함수 2. 파일입출력함수 1. 표준입출력함수 표준입출력함수 표준입력 (stdin, Standard Input) : 키보드입력 표준출력 (stdout, StandardOutput) : 모니터출력 1. 표준입출력함수 서식화된입출력함수 printf(), scanf() 서식의위치에올수있는것들 [ 기본 11-1]
More informationMicrosoft PowerPoint - chap6 [호환 모드]
제 6 장프로세스 (Process) 숙대창병모 1 내용 프로세스시작 / 종료 명령중인수 / 환경변수 메모리배치 / 할당 비지역점프 숙대창병모 2 프로세스시작 / 종료 숙대창병모 3 Process Start Kernel exec system call user process Cstart-up routine call return int main(int argc,
More information슬라이드 1
2007 년 2 학기윈도우게임프로그래밍 제 7 강프레임속도의조절 이대현 핚국산업기술대학교 학습내용 프레임속도의조절 30fps 맞추기 스프라이트프레임속도의조절 프레임속도 (Frame Rate) 프레임속도란? 얼마나빨리프레임 ( 일반적으로하나의완성된화면 ) 을만들어낼수있는지를나타내는척도 일반적으로초당프레임출력횟수를많이사용핚다. FPS(Frame Per Sec)
More information슬라이드 1
14 차시 파일 (2) 강 C 프로그래밍 10 메모리 메모리 주메모리 : 속도가빠르다. 가격이비싸다. 휘발성. 프로그램실행에필수 보조메모리 : 속도가느리다. 가격이싸다. 영구적. 영구적인자료보관, 대용량의데이터는보조메모리이용 파일 이름 + 확장자, 날짜, 크기 폴더 강 C 프로그래밍 11 프로그램이파일을지원하면 1 프로그램실행의연속성 2 번거로운데이터입력자동화
More informationÀ©µµ³×Æ®¿÷ÇÁ·Î±×·¡¹Ö4Àå_ÃÖÁ¾
P a 02 r t Chapter 4 TCP Chapter 5 Chapter 6 UDP Chapter 7 Chapter 8 GUI C h a p t e r 04 TCP 1 3 1 2 3 TCP TCP TCP [ 4 2] listen connect send accept recv send recv [ 4 1] PC Internet Explorer HTTP HTTP
More informationMicrosoft PowerPoint - Lecture_Note_5.ppt [Compatibility Mode]
TCP Server/Client Department of Computer Engineering Kyung Hee University. Choong Seon Hong 1 TCP Server Program Procedure TCP Server socket() bind() 소켓생성 소켓번호와소켓주소의결합 listen() accept() read() 서비스처리, write()
More informationPowerPoint 프레젠테이션
Web server porting 2 Jo, Heeseung Web 을이용한 LED 제어 Web 을이용한 LED 제어프로그램 web 에서데이터를전송받아타겟보드의 LED 를조작하는프로그램을작성하기위해다음과같은소스파일을생성 2 Web 을이용한 LED 제어 LED 제어프로그램작성 8bitled.html 파일을작성 root@ubuntu:/working/web# vi
More informationuntitled
if( ) ; if( sales > 2000 ) bonus = 200; if( score >= 60 ) printf(".\n"); if( height >= 130 && age >= 10 ) printf(".\n"); if ( temperature < 0 ) printf(".\n"); // printf(" %.\n \n", temperature); // if(
More informationMicrosoft PowerPoint - chap11.ppt [호환 모드]
2010-1 학기프로그래밍입문 (1) 11 장입출력과운영체제 박종혁 Tel: 970-6702 Email: jhpark1@snut.ac.kr k 0 특징 printf() - 임의의개수의인자출력 - 간단한변환명세나형식을사용한출력제어 A Book on C, 4ed. 11-1 printf() printf(control_string, other_argument) -
More information1장. 유닉스 시스템 프로그래밍 개요
9 장. 파이프 Unix 프로그래밍및실습 1 강의내용 1 절개요 2 절이름없는파이프 3 절이름있는파이프 http://lily.mmu.ac.kr/lecture/13u2/ch09.pdf 책에나온내용반드시 man 으로확인할것! UNIX, LINUX 등시스템마다차이가있을수있음을반드시인식 2 기본실습 #1 [ 예제 9-1] ~ [ 예제 9-7] ( 각 10점 ) 과제개요
More information제1장 Unix란 무엇인가?
5 장파일시스템 상지대학교컴퓨터공학과고광만 kkman@sangji.ac.kr http://compiler.sangji.ac.kr 2018 5.1 파일시스템구현 파일시스템구조 0 1 2 3 200 201 부트블록슈퍼블록 i-노드 1..40 i-노드 41..80... 데이터블록데이터블록... i- 리스트 데이터블록 데이터블록 3 파일시스템구조 부트블록 (Boot
More information임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과
임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과 System call table and linkage v Ref. http://www.ibm.com/developerworks/linux/library/l-system-calls/ - 2 - Young-Jin Kim SYSCALL_DEFINE 함수
More informationK&R2 Reference Manual 번역본
typewriter structunion struct union if-else if if else if if else if if if if else else ; auto register static extern typedef void char short int long float double signed unsigned const volatile { } struct
More information1장. 유닉스 시스템 프로그래밍 개요
Unix 프로그래밍및실습 7 장. 시그널 - 과제보충 응용과제 1 부모프로세스는반복해서메뉴를출력하고사용자로부터주문을받아자식프로세스에게주문내용을알린다. (SIGUSR1) ( 일단주문을받으면음식이완료되기전까지 SIGUSR1 을제외한다른시그널은모두무시 ) timer 자식프로세스는주문을받으면조리를시작한다. ( 일단조리를시작하면음식이완성되기전까지 SIGALARM 을제외한다른시그널은모두무시
More informationMicrosoft PowerPoint - chap02-C프로그램시작하기.pptx
#include int main(void) { int num; printf( Please enter an integer "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 을 작성하면서 C 프로그램의
More information이번장에서학습할내용 동적메모리란? malloc() 와 calloc() 연결리스트 파일을이용하면보다많은데이터를유용하고지속적으로사용및관리할수있습니다. 2
제 17 장동적메모리와연결리스트 유준범 (JUNBEOM YOO) Ver. 2.0 jbyoo@konkuk.ac.kr http://dslab.konkuk.ac.kr 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다. 이번장에서학습할내용 동적메모리란? malloc() 와 calloc() 연결리스트 파일을이용하면보다많은데이터를유용하고지속적으로사용및관리할수있습니다.
More information歯7장.PDF
7 Hello!! C 2 . 3 ([] ) < > [ ]; int array[10]; < > [ ][ ]; int array [3] [5]; 4 < > [ ]={ x1,,x10} ( ); (,). ({}). : int array[10]={1,2,3,4,5,6,7,8,9,10}; (" "). : char array[7]="turbo-c"; 5 int array[2][3]={{1,2},{3,4},{5,6}};
More informationchap7.PDF
7 Hello!! C 2 . 3 ([] ) < > [ ]; int array[10]; < > [ ][ ]; int array [3] [5]; 4 < > [ ]={ x1,,x10} ( ); (,). ({}). : int array[10]={1,2,3,4,5,6,7,8,9,10}; (" "). : char array[7]="turbo-c"; 5 int array[2][3]={{1,2},{3,4},{5,6}};
More information<4D F736F F F696E74202D2034C5D8BDBAC6AEC6C4C0CFC0D4C3E2B7C2312E505054>
의료프로그래밍실습 의료공학과이기영 1 Chap. 11 파일입출력 2 1 이장의목표 텍스트파일의입출력방법을익힌다. (284 쪽그림참조 ) 3 C 언어의파일종류 텍스트파일 (text file) 사람들이읽을수있는문자들을저장하고있는파일 텍스트파일에서 한줄의끝 을나타내는표현은파일이읽어들여질때, C 내부의방식으로변환된다. 이진파일 (binary file) : 자료형그대로의바이트수로연속해서저장
More informationChapter #01 Subject
Device Driver March 24, 2004 Kim, ki-hyeon 목차 1. 인터럽트처리복습 1. 인터럽트복습 입력검출방법 인터럽트방식, 폴링 (polling) 방식 인터럽트서비스등록함수 ( 커널에등록 ) int request_irq(unsigned int irq, void(*handler)(int,void*,struct pt_regs*), unsigned
More informationPoison null byte Excuse the ads! We need some help to keep our site up. List 1 Conditions 2 Exploit plan 2.1 chunksize(p)!= prev_size (next_chunk(p) 3
Poison null byte Excuse the ads! We need some help to keep our site up. List 1 Conditions 2 Exploit plan 2.1 chunksize(p)!= prev_size (next_chunk(p) 3 Example 3.1 Files 3.2 Source code 3.3 Exploit flow
More informationMicrosoft PowerPoint - 알고리즘_4주차_1차시.pptx
Chapter 4 Fundamental File Structure Concepts Reference: M. J. Folk and B. Zoellick, File Structures, Addison-Wesley (1992). TABLE OF CONTENTSN Field and Record Organization Record Access More about Record
More information제 14 장포인터활용 유준범 (JUNBEOM YOO) Ver 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다.
제 14 장포인터활용 유준범 (JUNBEOM YOO) Ver. 2.0 jbyoo@konkuk.ac.kr http://dslab.konkuk.ac.kr 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다. 이번장에서학습할내용 이중포인터란무엇인가? 포인터배열 함수포인터 다차원배열과포인터 void 포인터 포인터는다양한용도로유용하게활용될수있습니다. 2 이중포인터
More informationchap 5: Trees
5. Threaded Binary Tree 기본개념 n 개의노드를갖는이진트리에는 2n 개의링크가존재 2n 개의링크중에 n + 1 개의링크값은 null Null 링크를다른노드에대한포인터로대체 Threads Thread 의이용 ptr left_child = NULL 일경우, ptr left_child 를 ptr 의 inorder predecessor 를가리키도록변경
More informationPowerPoint 프레젠테이션
LED Device Control - mmap() Jo, Heeseung 디바이스제어 디바이스제어 HBE-SM5-S4210 에장착된 Peripheral 들은다양한인터페이스로연결되어있음 베이스보드에있는 LED 와 7-Segment 는 GPIO 로직접 CPU 에연결 M3 모듈인 FPGA 모듈은 FPGA 에의해서제어되며 CPU 와호스트버스로연결되어있어서프로그램에서는메모리인터페이스로인식
More informationThe Pocket Guide to TCP/IP Sockets: C Version
1 목포해양대해양컴퓨터공학과 UDP 소켓 네트워크프로그램설계 4 장 2 목포해양대해양컴퓨터공학과 목차 제 4장 UDP 소켓 4.1 UDP 클라이언트 4.2 UDP 서버 4.3 UDP 소켓을이용한데이터송신및수신 4.4 UDP 소켓의연결 3 목포해양대해양컴퓨터공학과 UDP 소켓의특징 UDP 소켓의특성 신뢰할수없는데이터전송방식 목적지에정확하게전송된다는보장이없음.
More informationMicrosoft PowerPoint - chap11-1.ppt [호환 모드]
chapter 11-1 참고자료. 파일입출력 박종혁 Tel: 970-6702 Email: jhpark1@snut.ac.kr k 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- ehanbit.net 파일입출력의개념 파일은데이터를입출력하는모든대상을의미한다. - 키보드로부터데이터를입력하고모니터로출력하는것은키보드파일과 모니터파일로데이터를입출력하는것이다.
More information