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

📄 logdump.c

📁 在Linux内核从2.4升级到2.6时需要升级的软件包
💻 C
字号:
/* *   Copyright (c) International Business Machines Corp., 2000-2002 * *   This program is free software;  you can redistribute it and/or modify *   it under the terms of the GNU General Public License as published by *   the Free Software Foundation; either version 2 of the License, or *   (at your option) any later version. * *   This program is distributed in the hope that it will be useful, *   but WITHOUT ANY WARRANTY;  without even the implied warranty of *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See *   the GNU General Public License for more details. * *   You should have received a copy of the GNU General Public License *   along with this program;  if not, write to the Free Software *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *//* *   FUNCTION: dumps the contents of the journal log on the *             specified JFS partition into "./jfslog.dmp" */#include <config.h>#include <fcntl.h>#include <stdarg.h>#include <stddef.h>#include <stdio.h>#include <string.h>#include <stdlib.h>#include <unistd.h>#include <pwd.h>#include "jfs_types.h"#include "devices.h"#include "jfs_version.h"#define LOGDMP_OK  0#define LOGDMP_FAILED -1#define  FULLLOG  -1#define  CURRLOG   1int jfs_logdump(char *, FILE *, int);int parse_parms(int, char **);char log_device[1];		/* This avoids linker error */ /* + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +  *  * Device information.  *  *     values are assigned when (if) the device is opened.  */FILE *Dev_IOPort;unsigned Dev_blksize;char *Vol_Label = NULL;int dump_all = 0; /* + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +  *  * For message processing in called routines  *  */extern caddr_t prog;extern void fsck_send_msg(int, int);	/* defined in fsckmsg.c */extern int alloc_wrksp(unsigned, int, int, void **);	/* defined in fsckwsp.c *//**************************************************************************** * * NAME: main * * FUNCTION: call jfs_logdump() * * INTERFACE: *            jfs_logdump [-a] <block device> * *  where -a => dump entire contents of log instead of just *    committed transactions since last synch point. * * RETURNS: *      success: 0 *      failure: something else */int main(int argc, char **argv){	int rc = LOGDMP_OK;	printf("jfs_logdump version %s, %s\n", VERSION, JFSUTILS_DATE);	prog = "jfs_logdump";	rc = parse_parms(argc, argv);	/* parse the parms and record					 * them in the aggregate wsp record					 */	if (rc != 0)		return 0;	printf("Device Name: %s\n", Vol_Label);	Dev_IOPort = fopen(Vol_Label, "r");	if (Dev_IOPort == NULL) {		fprintf(stderr, "Error: Cannot open device %s, rc = %d.\n", Vol_Label, rc);		return (-1);	}	jfs_logdump(Vol_Label, Dev_IOPort, dump_all);	return fclose(Dev_IOPort);}/***************************************************************************** * NAME: parse_parms * * FUNCTION:  Parse the invocation parameters.  If any unrecognized *            parameters are detected, or if any required parameter is *            omitted, issue a message and exit. * * PARAMETERS:  as specified to main() * * RETURNS: *      success: LOGDMP_OK *      failure: something else */int parse_parms(int argc, char **argv){	int pp_rc = LOGDMP_OK;	int i = 0;	char *argp;	for (i = 1; i < argc; i++) {	/* for all parms on command line */		argp = argv[i];		if (*argp == '-') {	/* leading - */			argp++;			if (*argp == 'a' || *argp == 'A') {	/* debug */				/*				 * Dump entire log Option				 */				dump_all = -1;			} else {				/*				 * unrecognized keyword parm				 */				printf("JFS_LOGDUMP:  unrecognized keyword detected:   %s\n", argp);				return (LOGDMP_FAILED);			}		} else if (argp[0] == '/') {	/* 2nd char is / */			Vol_Label = argp;		} else {	/* unrecognized parm */			printf("JFS_LOGDUMP:  unsupported parameter detected:   %s\n", argp);			return (LOGDMP_FAILED);		}	}	if (Vol_Label == NULL) {	/* no device specified */		printf("Error: no device given.\n");		printf("Usage: jfs_logdump [-a] <block device>\n");		return (LOGDMP_FAILED);	}	return (pp_rc);}

⌨️ 快捷键说明

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