Go to the source code of this file.
◆ dbClose()
Definition at line 320 of file sing_dbm.cc.
321{
323
329}
#define omFreeSize(addr, size)
#define SI_LINK_SET_CLOSE_P(l)
◆ dbOpen()
Definition at line 283 of file sing_dbm.cc.
284{
285 const char *mode = "r";
287 int dbm_flags = O_RDONLY | O_CREAT;
288
290 && ((
l->mode[0]==
'w')||(
l->mode[1]==
'w')))
291 {
292 dbm_flags = O_RDWR | O_CREAT;
293 mode = "rw";
295 }
297 {
298
300 }
301
302
305 {
309 else
311 l->data=(
void *)(db);
315 }
317}
DBM * dbm_open(char *file, int flags, int mode)
#define omFreeBinAddr(addr)
#define SI_LINK_SET_R_OPEN_P(l)
#define SI_LINK_SET_RW_OPEN_P(l)
◆ dbRead1()
Definition at line 379 of file sing_dbm.cc.
380{
382}
LINKAGE leftv dbRead2(si_link l, leftv key)
◆ dbRead2()
Definition at line 333 of file sing_dbm.cc.
334{
338
340 {
342 {
350 }
351 else
352 {
353 WerrorS(
"read(`DBM link`,`string`) expected");
354 }
355 }
356 else
357 {
358 if(db->first)
360 else
362
366 {
368 db->first = 0;
369 }
370 else
371 {
373 db->first = 1;
374 }
375
376 }
378}
const Variable & v
< [in] a sqrfree bivariate poly
void WerrorS(const char *s)
EXTERN_VAR omBin sleftv_bin
datum dbm_fetch(DBM *db, datum key)
datum dbm_nextkey(DBM *db)
datum dbm_firstkey(DBM *db)
◆ dbWrite()
Definition at line 384 of file sing_dbm.cc.
385{
388 int ret;
389
390
392 {
394 {
396 {
398
399 d_key.
dptr = (
char *)key->Data();
401 d_value.dptr = (
char *)key->next->Data();
404 if(!ret )
406 else
407 {
409 {
410 Werror(
"DBM link I/O error. Is '%s' readonly?",
l->name);
412 }
413 }
414 }
415 }
416 else
417 {
419
420 d_key.
dptr = (
char *)key->Data();
424 }
425 }
426 else
427 {
428 WerrorS(
"write(`DBM link`,`key string` [,`data string`]) expected");
429 }
431}
int dbm_store(DBM *db, datum key, datum dat, int replace)
int dbm_delete(DBM *db, datum key)
void Werror(const char *fmt,...)