home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Power-Programmierung
/
CD1.mdf
/
magazine
/
drdobbs
/
1987
/
12
/
deikman
/
deikman.exp
< prev
next >
Wrap
Text File
|
1987-12-08
|
2KB
|
76 lines
char buffer[512];
long recn;
char *rec;
{
if ((rec = cacfind(cache, recn)) == NULL) {
/* record not in cache, must be read from disk */
lseek(fd, recn * 512, 0);
read(fd, buffer, 512);
rec = buffer;
}
/* rec points to record to process */
}
example 1
char buffer[512];
long recn; /* record number to write */
char *rec; /* pointer to block in cache area */
{
if ((rec = cacfind(cache, recn)) == NULL) rec = cacnum(cache, recn);
memcpy(rec, buffer, 512); /* copy data into cache area */
lseek(fd, 512 * recn, 0);
write(fd, rec, 512);
}
example 2
char buffer[512];
long recn; /* record number to write */
char *rec; /* pointer to block in cache area */
{
if ((rec = cacfind(cache, recn)) == NULL) rec = cacnum(cache, recn);
memcpy(rec, buffer, 512); /* copy data into cache area */
cacproc(cache, recn); /* mark the block for processing */
}
example 3
write_cache(idnt, recn, recb)
long idnt; /* cache identifier */
long recn; /* record number */
char *recb; /* record buffer */
{
lseek(fd, recn * 512, 0);
write(fd, recb, 512);
return;
}
example 4