searchmap.c

来自「操作系统简单的登入程序」· C语言 代码 · 共 108 行

C
108
字号
#include <stdio.h>#include <string.h>#include "filesys.h"unsigned short freedir2id(){	unsigned short i;	for (i=0;i<DIRNUM;i++)	{		if(directory_2.direct[i].filetype==DIEMPTY)		{			break;		}	}	return i;}unsigned short freedir1id(){	unsigned short i;	for (i=0;i<USERNUM;i++)	{		if(directory_1.users[i].n_inode==0)		{			break;		}	}	return i;}/*Search the fist level directory item to find the second level directory iteminput: first level directory item namereturn: mapping second level directory*/unsigned short  map2dir(char* name){	int i;	for (i=0;i<DIRNUM;i++)	{		if(!strcmp(directory_1.users[i].u_uid,name))		{			break;		}	}	if (i!=DIRNUM )		return i;	else		return MAPERR;}/*Search the second level directory item to find the inode item in the inode tableinput:second level directory item name;return: mapping inode*/unsigned short map2inode(char* name){	int i;	for (i=0;i<DIRNUM;i++)	{		if(!strcmp(directory_2.direct[i].name,name))		{		//printf("\nmap is %s in the %d\n",directory_2.direct[i].name,i);					break;		}	}	if(i!=DIRNUM)		return 	directory_2.direct[i].d_ino;	else		return MAPERR;}unsigned short dirname2id(char* name){	unsigned short i;	for (i=0;i<DIRNUM;i++)	{		if(!strcmp(directory_2.direct[i].name,name))		{			break;		}	}	return i;}unsigned short username2id(char* name){	unsigned short i;	for (i=0;i<USERNUM;i++)	{		printf("users[%d].u_uid: %s\n", i, directory_1.users[i].u_uid);		if(!strcmp(directory_1.users[i].u_uid,name))		{			break;		}	}	return i;}

⌨️ 快捷键说明

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