시스템 프로그래밍 관련해서 질문 좀 할게요..
글쓴이: PineTree514 / 작성시간: 월, 2013/04/01 - 7:18오후
int main(void) { int fd; struct namecard card; char buf[MAXLEN]; int i; fd = open("mynamecard", O_RDONLY, 0644); if (fd == -1) { printf("Error: cannot open\n"); exit(1); } do { printf("\n"); printf("Enter i: "); gets(buf); i = atoi(buf); lseek(fd, i*sizeof(struct namecard), SEEK_SET); read(fd, &card, sizeof(struct namecard)); printf("Name: %s\n", card.name); printf("phone number: %s\n", card.phone); printf("Continue (y/n)? "); gets(buf); } while (!strcmp(buf,"y") || !strcmp(buf,"Y")); close(fd); }
i값을 입력 받아서 저장된 명함의 수보다 크면 다시 입력 받도록
수정을 해야 되는데 머리를 싸매고 해도 제 실력으론 부족하네요.
힌트라도 주시면 감사하겠습니다. 꾸벅
Forums:
여러가지 방법이 있을수 있겠네요 파일에 struct
여러가지 방법이 있을수 있겠네요
파일에 struct namecard만 존재 하는 것이 아닌
첫 4바이트는 갯수를 저장 할 수도 있고
파일의 형식을 바꾸지 않는다면
파일의 사이즈를 읽어와 갯수를 추측해낼수도 있겟네요
답변 감사합니다
답변 감사합니다
변명은 하지 않겠습니다.
댓글 달기