⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ourlib.c

📁 UNIX环境下资源监控程序(包含对CPUMEMDISKIOPS等资源的监控)
💻 C
字号:
/********************************************************************/
/** PROGRAM      : error message dispose                           **/
/** FUNCTION     : ourlib.c                                        **/
/** COMPILED     : cc                                              **/
/** LIBRARY      :                                                 **/
/**                                                                **/
/** AUTHOR       : yiwu                                            **/
/** DATE         : 2002/07/31                                      **/
/** LAST MODIFIER:                                                 **/
/** MODIFY DATE  :                                                 **/
/********************************************************************/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdarg.h>
#include <fcntl.h>
#include <unistd.h>
#include "ourlib.h"

extern int errno;

static void err_doit( int error,char *fmt,va_list ap )
{
	int error_save;
	char pchBuf[1024];

	error_save = errno;
	vsprintf( pchBuf,fmt,ap );
	if ( error )
		sprintf( pchBuf+strlen( pchBuf )," : %s",strerror( error_save ) );
	strcat( pchBuf,"\n" );
	fputs( pchBuf,stdout );
	fflush( NULL );
	return ;
}

void err_ret( char *fmt,... )
{
	va_list ap;
	
	va_start( ap,fmt );
	err_doit( 1,fmt,ap );
	va_end( ap );
	return;
}

void err_dump( char *fmt,... )
{
	va_list ap;

	va_start( ap,fmt );
	err_doit( 1,fmt,ap );
	va_end( ap );
	abort();
}

void err_sys( char *fmt,... )
{
	va_list ap;

	va_start( ap,fmt );
	err_doit( 1,fmt,ap );
	va_end( ap );
	exit( 1 );
}

void err_msg( char *fmt,... )
{
	va_list ap;

	va_start( ap,fmt );
	err_doit( 0,fmt,ap );
	va_end( ap );
	return;
}

void err_quit( char *fmt,... )
{
	va_list ap;

	va_start( ap,fmt );
	err_doit( 0,fmt,ap );
	va_end( ap );
	exit( 1 );
}


void vSetRunFlag( char *pchFilename )
{
	int fd;
	char pchBuf[256],*pchPt;

	strcpy( pchBuf,pchFilename );
	strcat( pchBuf,".pid" );
	
	if ( ( fd = open( pchBuf,O_RDWR|O_CREAT,0666 ) ) == -1 )
	{
		err_sys( "set run flag error" );
	}
	if ( lockf( fd,F_TLOCK,0 ) == -1 )
	{
		exit( 1 );
	}

	sprintf( pchBuf,"%d",getpid() );
	write( fd,pchBuf,strlen( pchBuf ) );
	ftruncate( fd,strlen( pchBuf ) );
}

void vUnsetRunFlag( char *pchFilename )
{
	char pchBuf[256];

	strcpy( pchBuf,pchFilename );
	strcat( pchBuf,".pid" );

	unlink( pchBuf );
	
}

⌨️ 快捷键说明

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