리눅스 간단한 프로그램 관련해서 질문있습니다
글쓴이: wkfdlek / 작성시간: 목, 2018/10/18 - 3:54오후
안녕하세요 컴공과 재학중인 학생인데
과제중인데 내용은 그나마 잘 한거 같은데 처음에 막혀서
일단 제가 만든 과제중인 프로그램이 좀 난잡해서 다른 비슷한 코드로 먼저 보여드릴게요
#include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <fcntl.h> #include "student.h" /* 학생 정보를 입력받아 데이터베이스 파일에 저장한다. */ int main(int argc, char *argv[]) { int fd; struct student record; if (argc < 2) { fprintf(stderr, "사용법 : %s file\n", argv[0]); exit(1); } if ((fd = open(argv[1], O_WRONLY|O_CREAT|O_EXCL, 0640)) == -1) { perror(argv[1]); exit(2); } printf("%-9s %-8s %-4s %-9s", "학번", "이름", "점수", "연락처"); while (scanf("%d %s %d %s", &record.id, record.name, &record.score, record.hp) == 4) { lseek(fd, (record.id - START_ID) * sizeof(record), SEEK_SET); write(fd, (char *) &record, sizeof(record)); } close(fd); exit(0); }
요건데
if (argc < 2) {
fprintf(stderr, "사용법 : %s file\n", argv[0]);
exit(1);
}
if ((fd = open(argv[1], O_WRONLY|O_CREAT|O_EXCL, 0640)) == -1) {
perror(argv[1]);
exit(2);
}
이 부분에서 뜬금없이 오류나서(밑에는 컴파일해서 나온 내용)
[
사용법 : ./파일명 file
bad address
]
인식을 못하는건지....
그리고 open함수 부분을 (fd =open(argv[1],O_RDWR)) == -1 로 쓸 예정인데
이 부분 오류 있을까요?
Forums:
질문 잘 하는 방법
https://wiki.kldp.org/wiki.php/DocbookSgml/Beginner_QA-KLDP#AEN70
세벌 https://sebuls.blogspot.kr/
댓글 달기