V10/cmd/backup.old/logprint.c
#include "backup.h"
#include <libc.h>
static int connect();
char *doprint();
logprint(fmt, args)
char *fmt;
{
char buf[4096], *out;
long t;
int ifd, ofd;
char *ctime();
if(connect(&ifd, &ofd))
return;
(void)time(&t);
out = ctime(&t);
out[strlen(out)-1] = 0;
out = doprint(buf, "%s ", (char *)&out);
out = doprint(out, fmt, (char *)&args);
if(write(ofd, buf, (int)(out-buf)) != out-buf)
perror("write");
buf[0] = 'X';
switch(read(ifd, buf, 1))
{
case -1:
perror("read");
break;
case 1:
if(buf[0] != 'O')
fprint(2, "unexpected return '%c' (0%o) from backup logger\n", buf[0], buf[0]&0xFF);
break;
case 0:
fprint(2, "unexpected eof from backup logger\n");
break;
}
close(ifd);
close(ofd);
}
static
connect(ifd, ofd)
int *ifd, *ofd;
{
char bdir[FNAMELEN], *b;
backupdir(b = bdir);
while(*b++)
;
return(rx(b, "backuplog", "bkplog", "light", ifd, ofd));
}