logent.c

来自「unix v7是最后一个广泛发布的研究型UNIX版本」· C语言 代码 · 共 116 行

C
116
字号
#include "uucp.h"#include <sys/types.h>#include <time.h>char Tmplog[MAXFULLNAME] = "";FILE *Lp = NULL;/******* *	logent(text, status)	make log entry *	char *text, *status; * *	return code - none */logent(text, status)char *text, *status;{	int n;	FILE *fp;	if (Lp != NULL) {		/*  make entry in existing temp log file  */		mlogent(Lp, status, text);		return;	}	if (ulockf(LOGLOCK, 10l) == 0) {		if ((fp = fopen(LOGFILE, "a")) == NULL) {			rmlock(LOGLOCK);		}		else {			mlogent(fp, status, text);			fclose(fp);			rmlock(LOGLOCK);			return;		}	}	/*  make a temp log file  */	for (n = 0; n < 10; n++) {		sprintf(Tmplog, "%s/LOG.%05d.%1d", LOGDIR, getpid(), n);		if (access(Tmplog, 0) == -1)			break;	}	if ((Lp = fopen(Tmplog, "w")) == NULL)		return;	chmod(Tmplog, 0222);	setbuf(Lp, NULL);	mlogent(Lp, status, text);	return;}/*** *	mlogent(fp, status, text)  - make a log entry */mlogent(fp, status, text)char *text, *status;FILE *fp;{	struct tm *tp;	extern struct tm *localtime();	time_t clock;	time(&clock);	tp = localtime(&clock);	fprintf(fp, "%s %s ", User, Rmtname);	fprintf(fp, "(%d/%d-%d:%d) ", tp->tm_mon + 1,		tp->tm_mday, tp->tm_hour, tp->tm_min);	fprintf(fp, "%s (%s)\n", status, text);	return;}/*** *	logcls()	close log file * *	return codes:  none */logcls(){	if (Lp != NULL) {		fclose(Lp);		chmod(Tmplog, 0666);	}	return;}/*** *	syslog(text)	make system log entry *	char *text; * *	return codes - none */syslog(text)char *text;{	struct tm *tp;	extern struct tm *localtime();	time_t clock;	FILE *fp;	time(&clock);	tp = localtime(&clock);	fp = fopen(SYSLOG, "a");	if (fp == NULL)		return;	fprintf(fp, "%s %s ", User, Rmtname);	fprintf(fp, "(%d/%d-%d:%d) ", tp->tm_mon + 1,		tp->tm_mday, tp->tm_hour, tp->tm_min);	fprintf(fp, "%s\n", text);	fclose(fp);	return;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?