fs_server.h

来自「题目:文件系统的模拟实现 目的:深入理解文件系统的实现机制」· C头文件 代码 · 共 107 行

H
107
字号
#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>#include <time.h>
#define SERVER_FIFO_NAME "/tmp/serv_fifo"#define CLIENT_FIFO_NAME "/tmp/client_%d_fifo"#define BUFFER_SIZE 80#define NICFREE 50
#define NICINOD 100
#define NOFILE  20

typedef unsigned short dblock_addr;
typedef unsigned short dinode_addr;

struct filesys {
  unsigned short s_isize;
  int            s_fsize;
  unsigned short s_nfree;
  dblock_addr        s_free[NICFREE];
  unsigned short s_ninode;
  dinode_addr       s_inode[NICINOD];
  char           s_flock;
  char           s_ilock;
  char           s_fmod;
  char           s_ronly;
  time_t         s_time;
  short          s_dinfo[4];
  int            s_tfree;
  int            s_tinode;
  char           s_fname[6];
  char           s_fpack[6];
  long           s_fill[167];
  long           s_magic;
  long           s_type;
}SuperBlock;


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;

typedef struct pathname
{
char name[15][15];
int num;
} Pathname;
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;       };

int fd;


⌨️ 快捷键说明

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