mirror of
https://github.com/GnoConsortium/gno.git
synced 2024-11-18 19:09:31 +00:00
69 lines
1.9 KiB
C
69 lines
1.9 KiB
C
/*
|
|
* old_syslog library routine. Used if syslogd is not present. This routine
|
|
* has a subset of the functions of syslogd. It always outputs to
|
|
* /etc/syslog, and it accepts only one string, and does no error checking.
|
|
* It also prints the facility/log level as a number.
|
|
*
|
|
* If you're sure syslogd will be available when your program is run (or you
|
|
* want syslog() to do nothing if it isn't), create a dummy old_syslog() that
|
|
* simply returns. This will make your program smaller.
|
|
*
|
|
* Phillip Vandry, August 1993.
|
|
*
|
|
* $Id: oldlog.c,v 1.1 1997/02/28 05:12:44 gdr Exp $
|
|
*
|
|
* This file is formatted with tab stops every 8 columns.
|
|
*/
|
|
|
|
#ifdef __ORCAC__
|
|
segment "libc_gen__";
|
|
#endif
|
|
|
|
#pragma optimize 0
|
|
#pragma debug 0
|
|
#pragma memorymodel 0
|
|
|
|
#include <stdio.h>
|
|
#include <fcntl.h>
|
|
#include <memory.h>
|
|
#include <time.h>
|
|
#include <unistd.h>
|
|
#include <string.h>
|
|
#include <sys/syslog.h>
|
|
|
|
#define _PATH_SYSLOG "/etc/syslog"
|
|
|
|
/* Perhaps this struct decl belongs in <sys/syslog.h> ? */
|
|
|
|
struct syslogd {
|
|
int version; /* == 0 */
|
|
int prio; /* priority and facility */
|
|
int numstrings; /* number of strings sent to syslogd */
|
|
int string1; /* offset of string #1 */
|
|
/* offset of more strings. This routine handles only one string */
|
|
int string1_len; /* length of string #1 (GS/OS string) */
|
|
char string1_text; /* variable length */
|
|
};
|
|
|
|
void
|
|
old_syslog (Handle datahand)
|
|
{
|
|
struct syslogd *data;
|
|
static time_t trec;
|
|
int where;
|
|
static char number[32];
|
|
|
|
HLock(datahand);
|
|
data = (struct syslogd *)*datahand;
|
|
if ((where = open(_PATH_SYSLOG, O_APPEND|O_WRONLY|O_CREAT)) == -1) {
|
|
return;
|
|
}
|
|
trec = time(NULL);
|
|
sprintf(number,"%s: <%d> ", ctime(&trec), data->prio);
|
|
write(where,number,(size_t)strlen(number));
|
|
write(where,&(data->string1_text),(size_t)data->string1_len);
|
|
write(where,"\r",1l);
|
|
close(where);
|
|
DisposeHandle(datahand);
|
|
}
|