From owner-freebsd-database Sat Aug 15 16:02:30 1998 Return-Path: Received: (from majordom@localhost) by hub.freebsd.org (8.8.8/8.8.8) id QAA28143 for freebsd-database-outgoing; Sat, 15 Aug 1998 16:02:30 -0700 (PDT) (envelope-from owner-freebsd-database@FreeBSD.ORG) Received: from skylink.skylink.net (skylink.skylink.net [206.25.34.2]) by hub.freebsd.org (8.8.8/8.8.8) with ESMTP id QAA28128 for ; Sat, 15 Aug 1998 16:02:27 -0700 (PDT) (envelope-from animal@skylink.net) Received: from shell.skylink.net (animal@shell.skylink.net [206.25.34.5]) by skylink.skylink.net (8.8.8/8.8.8) with SMTP id QAA06626; Sat, 15 Aug 1998 16:01:52 -0700 (PDT) Date: Sat, 15 Aug 1998 16:01:52 -0700 (PDT) From: animal To: Tom cc: freebsd-database@FreeBSD.ORG Subject: Re: .dir .pag .db In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-freebsd-database@FreeBSD.ORG Precedence: bulk that was a mistake in typing only..... it should look like this.... kename.dptr = "animal"; kename.dsize = strlen(kename.dptr)+1; whatto.dptr = "Data to store"; whatto.dsize = strlen(whatto.dptr)+1; On Fri, 14 Aug 1998, Tom wrote: > > On Fri, 14 Aug 1998, animal wrote: > > > > > I am for one haveing a hard time even getiing any documentation on all of > > these.... > > > > When i create a database with perl it makes a .db..... > > > > but i am trying to compile a c prog that will add keys to a data base... > > > > can you tell me what i am doing wrong.... > > > > I use this to create the database...... > > > > #include > > #include > > #include > > > > main() { > > > > DBM *db; > > > > db = dbm_open("/usr/local/radius/users",O_CREAT,0000664); > > > > dbm_close(db); > > } > > > > > > > > and then i am trying to add data to it by.......... > > > > #include > > #include > > #include > > > > > > main() { > > > > DBM *db > > datum kename,whatto; > > > > db = dbm_open("/usr/local/radius/users",O_WRONLY,0000664); > > > > kename.dptr = "animal"; > > kename.dsize = strlen(kename.dptr)+1; > > > > whatto.dptr = "Data to be stored in database"; > > kename.dsize = strlen(whatto.dptr)+1; > > This is a bit of problem. You are setting kename.dsize twice, and the > second time to the length of whatto.dptr, so dbm_store will read beyond > the end of kename.dptr. > > > if (dbm_store(db,kename,whatto,DBM_INSERT) < 0) { > > printf("Insert messed up"); > > } > > > > dbm_close(db); > > } > > Tom > > To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-database" in the body of the message