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

📄 myfilelib.h

📁 题目:文件系统的模拟实现 目的:深入理解文件系统的实现机制
💻 H
字号:
#include <stdarg.h>
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <fcntl.h>
#include <limits.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <ctype.h>
#define NOFILE 30
#define SERVER_FIFO_NAME "/tmp/serv_fifo"
#define CLIENT_FIFO_NAME "/tmp/client_%d_fifo"
#define BUFFER_SIZE 80

#define SP_bsize 1024
#define DI_bsize 65536     
#define DB_bsize 1024000


typedef unsigned short dblock_addr;
typedef unsigned short dinode_addr;

typedef struct dinode {
  unsigned di_mode;
  short    di_nlink;
  unsigned di_uid;
  unsigned di_gid;
  unsigned      di_size;
  dblock_addr  di_addr[13];
  time_t   di_atime;
  time_t   di_mtime;
  time_t   di_ctime;
  int      fill[1];
} dinode;

typedef struct inode {
  unsigned      di_mode;
  short         di_nlink;
  unsigned      di_uid;
  unsigned      di_gid;
  int           di_size;
  struct inode *i_forw;
  struct inode *i_back;
  char          i_flag;
  int           i_count;
  dev_t         i_dev;
  dinode_addr      inumber;
  dblock_addr       i_a[13];
  dblock_addr       i_l;
} inode;

typedef struct direct {
  dinode_addr    DinodeAddr;
  char        d_name[14];
} direct;

struct file {
  char f_flag;
  int f_fount;
  inode *f_uinode;
  int f_off;
};
struct data_to_pass {
        int index;
	int length;
	char pathname[BUFFER_SIZE-1];
        int flag;
	int mode;
	dinode_addr DinodeAddr;
	unsigned nbytes;
	int filetype;
	pid_t client_pid;
       
};
struct file *u_ofile[NOFILE];
int FD = 2;

int fd ;
int open_flag = 0;





⌨️ 快捷键说明

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