📄 control_file.c
字号:
#include"../include/os.h"
#define WRONG_COMMAND -1
#define WRONG_FILE_NUMBER -2
#define WRONG_FILE_STATE -3
#define WRONG_CAPABILITY -4
#define WRONG_SEMAPHORE -5
#define NO_FREE_BLOCK -6
int control_file(int sleep_semaphore,int command,int file_window_number,
union file_system_operation_parameter *parameter,
struct capability *file_capability)
{
int return_value;
struct file_window *f;
if(sleep_semaphore<=0)
return WRONG_SEMAPHORE;
if(file_window_number<0)
return WRONG_FILE_NUMBER;
if(file_window_number>=(*(memory_body->file_number)))
return WRONG_FILE_NUMBER;
f=memory_body->file_window+file_window_number;
if(f->state!=FILE_OPEN)
return WRONG_FILE_STATE;
if(!KERNEL_COMPARE_CAPABILITY(
(f->file.capability),(*file_capability)))
return WRONG_CAPABILITY;
switch(command){
case OPEN_FILE:
case CLOSE_FILE:
case OPERATE_FILE:
return_value=operate_file_system(command,
sleep_semaphore,f,parameter,
current.rt->physical_block.memory_id,
current.rt->physical_block.block_id);
break;
default:
return_value=WRONG_COMMAND;
}
return return_value;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -