>> Read No. 35798 article  
[질문]gdbm에서요 Fail to Open database라고 나와요..

등록 2001-11-25 15:57:00     조회 1
이름 술이..    

		 전 98에 cgywin을 깔아서 unix프로그래밍을 하고 있거덩요..
근데 wrox 출판사의 소스 그대로 깔아서 컴파일까지 성공적인데 실행시키면
Failed to open database라고 나오내여..웅웅 T.T
 소스는
 #include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
#include <fcntl.h>
#include <ndbm.h>
#include <string.h>
 #define TEST_DB_FILE "dbm1_test"
#define ITEMS_USED 3
 /* A struct to use to test dbm */
struct test_data {
    char misc_chars[15];
    int  any_integer;
    char more_chars[21];
};
 int main() {
     struct test_data items_to_store[ITEMS_USED];
    struct test_data item_retrieved;
     char key_to_use[20];
    int i, result;
     datum key_datum;
    datum data_datum;
   
    DBM *dbm_ptr;
     dbm_ptr = dbm_open(TEST_DB_FILE, O_RDWR | O_CREAT, 0666);
    if (!dbm_ptr) {
        fprintf(stderr, "Failed to open database");  //이곳에서
        exit(EXIT_FAILURE);                            //에라나는 것
    }                                                  //같아요
         /* put some data in the structures */
    memset(items_to_store, '', sizeof(items_to_store));
    strcpy(items_to_store[0].misc_chars, "First!");
    i
tems_to_store[0].any_integer = 47;
    strcpy(items_to_store[0].more_chars, "foo");
    strcpy(items_to_store[1].mis
c_chars, "bar");
    items_to_store[1].any_integer = 13;
    strcpy(items_to_store[1].more_chars, "unlucky?");
   
 strcpy(items_to_store[2].misc_chars, "Third");
    items_to_store[2].any_integer = 3;
    strcpy(items_to_store[2].
more_chars, "baz");
     for (i = 0; i < ITEMS_USED; i++) {
            /* build a key to use */
        spr
intf(key_to_use, "%c%c%d",
            items_to_store[i].misc_chars[0],
            items_to_store[i].more_c
hars[0],
            items_to_store[i].any_integer);
             /* build the key datum strcture */
    
    key_datum.dptr = (void *)key_to_use;
        key_datum.dsize = strlen(key_to_use);
        data_datum.dptr
 = (void *)&items_to_store[i];
        data_datum.dsize = sizeof(struct test_data);
         result = dbm_store(
dbm_ptr, key_datum, data_datum, 
DBM_REPLACE);
        if (result != 0) {
            fprintf(stderr, "dbm_sto
re failed on key %s", 
key_to_use);
            exit(2);
        }
    } /* for */
         /* now try a
nd retrieve some data */
    sprintf(key_to_use, "bu%d", 13); /* this is the key for the second 
item */
    key_dat
um.dptr = key_to_use;
    key_datum.dsize = strlen(key_to_use);
     data_datum = dbm_fetch(dbm_ptr, key_datum);
  
  if (data_datum.dptr) {
        printf("Data retrieved");
        memcpy(&item_retrieved, data_datum.dptr, dat
a_datum.dsize);
        printf("Retrieved item - %s %d %s",
               item_retrieved.misc_chars,
    
           item_retrieved.any_integer,
               item_retrieved.more_chars);
    }
    else {
   
     printf("No data found for key %s", key_to_use);
    }
     dbm_close(dbm_ptr);
     exit(EXIT_SUCCESS);
}
 
인데여..
이름
암호
Register [ localhost 목록보기 윗글 아랫글
글쓰기
답장쓰기 수정 삭제
정규표현식 [ 상세 검색 ]
페이지로딩: [ 0.70 초 ] 작업시간: [ 0.06 초 ]

Copyleft 1999-2026 by JSBoard Open Project
Theme Designed by IDOO All right reserved
[TOP]

적수네 동네
+
| 적수네 동네
| 공부방
| 리눅스 잡지 서고
| LSN 소스
| 링크 모음
+---+
게시판
+
| 떠들어보세!
| 질문과 답변
| 새소식과 정보
| 1원짜리 팁?
| 대화방
+---+
칼럼?
+
| 세하 훔쳐보기
| Welcome2nite
| 혜진의 염장판
+---+
리눅스 상표권
+
| 반대 서명란
| 토론 게시판
+---+
GNU
+
| GNU 선언문
| GNU GPL
| GNU 미러 목록
+---+
프로젝트?
+
| 리눅스카운터
| RC5DES
| 실질헌법 제작
+---+
커널 소식
+
| 안정 버젼: 2.4.14
+---+
테마 선택
+
LSN 방송국?
+
| OFF AIR
+---+
회원
+
| 로그인
+---+
[ 적수네 동네 ] [ 리눅스 상표권 독점 반대 ] [ 한글 리눅스 문서 프로젝트 ] [ KrLine ] [ 사랑넷 ] [ Valid HTML 4.0! ] [ SlashDot ] [ Freshmeat ]
Copyleft (C) 1998-2001 Byeong-Chan Kim . License
TIME: 1789495059
System by WYZsoft, HDD by I.O.Linux, Mizi Research, Embryo, WOWLINUX, Domain by SarangNet, Network by KrLine.