find_name.c

来自「linux嵌入式课程实践中的一个关于声卡驱动程序 。」· C语言 代码 · 共 52 行

C
52
字号
/* * BK Id: SCCS/s.find_name.c 1.5 05/17/01 18:14:21 cort */#include <stdio.h>#include <asm/page.h>#include <sys/mman.h>#include <strings.h>/* * Finds a given address in the System.map and prints it out * with its neighbors.  -- Cort */int main(int argc, char **argv){	unsigned long addr, cmp, i;	FILE *f;	char s[256], last[256];		if ( argc < 2 )	{		fprintf(stderr, "Usage: %s <address>\n", argv[0]);		return -1;	}	for ( i = 1 ; argv[i] ; i++ )	{		sscanf( argv[i], "%0lx", &addr );		/* adjust if addr is relative to kernelbase */		if ( addr < PAGE_OFFSET )			addr += PAGE_OFFSET;				if ( (f = fopen( "System.map", "r" )) == NULL )		{			perror("fopen()\n");			exit(-1);		}				while ( !feof(f) )		{			fgets(s, 255 , f);			sscanf( s, "%0lx", &cmp );			if ( addr < cmp )				break;			strcpy( last, s);		}				printf( "%s%s", last, s );	}			fclose(f);	return 0;}

⌨️ 快捷键说明

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