📄 fs_server.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>#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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -