Transcript 강의자료(0922)
시스템 호출 • read , write의 효율성 • lseek test – – – – off_t lseek(int filedes, off_t offset, int start_flag); SEEK_SET : offset을 파일의 시작부터 계산 SEEK_CUR : offset을 파일 포인터의 현재 위치부터 계산 SEEK_END : offset을 파일의 끝부터 계산 filedes = open(filename, O_RDWR); lseek(filedes, (off_t)0, SEEK_END); write(filedes, outbuf, OBSIZE); => open(filename, O_RDWR|O_APPEND); write(filedes, outbuf, OBSIZE); • example – test1.c • 실습 – 연습문제 2.8 시스템 호출 • P34 – 호텔 예 – createdata.c – getoccupier.c, test3.c • gcc –o test3 test3.c getoccupier.c – (실습) • • 방 번호는 argc, argv를 사용해서 command로 부터 입력 받음 --- atoi(argv[1]) 사용 해당 방 번호의 투숙객을 출력 – 연습문제 2.10 • • • 방 번호는 argc, argv를 사용해서 command로 부터 입력 받음 --- atoi(argv[1]) 사용 한 방으로부터 투숙객을 제거하는 freeroom 루틴을 작성 방이 비어 있는지를 조사한 후, 새 손님을 방에 넣는 addguest를 작성 시스템 호출 • 파일의 끝에 자료 추가 – p37 lseek(fd, (off_t)0, SEEK_END); write(fd, buf, BUFSIZE); fd = open(“filename”, O_WRONLY | O_APPEND, 0644); write(fd, buf, BUFSIZE); • 파일의 제거 – test5.c int unlink(const char *pathname); int remove(const char *pathname); - 성공시 0, 실패시 -1을 반환 - rm과 동일